aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/containers
diff options
context:
space:
mode:
authoreeight <eeight@yandex-team.ru>2022-02-10 16:46:18 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:46:18 +0300
commit475c0a46f28166e83fd263badc7546377cddcabe (patch)
tree39c5a49b8aaad78fe390b6f1f2886bdbda40f3e7 /library/cpp/containers
parenta6e0145a095c7bb3770d6e07aee301de5c73f96e (diff)
downloadydb-475c0a46f28166e83fd263badc7546377cddcabe.tar.gz
Restoring authorship annotation for <eeight@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/containers')
-rw-r--r--library/cpp/containers/bitseq/bititerator.h2
-rw-r--r--library/cpp/containers/bitseq/bitvector.h2
-rw-r--r--library/cpp/containers/bitseq/readonly_bitvector.h12
-rw-r--r--library/cpp/containers/bitseq/ya.make2
-rw-r--r--library/cpp/containers/comptrie/chunked_helpers_trie.h20
-rw-r--r--library/cpp/containers/comptrie/comptrie_ut.cpp2
-rw-r--r--library/cpp/containers/sorted_vector/sorted_vector.h34
-rw-r--r--library/cpp/containers/stack_vector/stack_vec.h116
-rw-r--r--library/cpp/containers/stack_vector/stack_vec_ut.cpp74
9 files changed, 132 insertions, 132 deletions
diff --git a/library/cpp/containers/bitseq/bititerator.h b/library/cpp/containers/bitseq/bititerator.h
index 52dadd3798..2977abdd54 100644
--- a/library/cpp/containers/bitseq/bititerator.h
+++ b/library/cpp/containers/bitseq/bititerator.h
@@ -2,7 +2,7 @@
#include "traits.h"
-#include <library/cpp/pop_count/popcount.h>
+#include <library/cpp/pop_count/popcount.h>
template <typename T>
class TBitIterator {
diff --git a/library/cpp/containers/bitseq/bitvector.h b/library/cpp/containers/bitseq/bitvector.h
index 3f8fd81ee5..a620f83cb2 100644
--- a/library/cpp/containers/bitseq/bitvector.h
+++ b/library/cpp/containers/bitseq/bitvector.h
@@ -2,7 +2,7 @@
#include "traits.h"
-#include <library/cpp/pop_count/popcount.h>
+#include <library/cpp/pop_count/popcount.h>
#include <util/generic/vector.h>
#include <util/ysaveload.h>
diff --git a/library/cpp/containers/bitseq/readonly_bitvector.h b/library/cpp/containers/bitseq/readonly_bitvector.h
index 8612739c3f..02f04f9439 100644
--- a/library/cpp/containers/bitseq/readonly_bitvector.h
+++ b/library/cpp/containers/bitseq/readonly_bitvector.h
@@ -19,12 +19,12 @@ public:
{
}
- explicit TReadonlyBitVector(const TBitVector<T>& vector)
- : Size_(vector.Size_)
- , Data_(vector.Data_.data())
- {
- }
-
+ explicit TReadonlyBitVector(const TBitVector<T>& vector)
+ : Size_(vector.Size_)
+ , Data_(vector.Data_.data())
+ {
+ }
+
bool Test(ui64 pos) const {
return TTraits::Test(Data_, pos, Size_);
}
diff --git a/library/cpp/containers/bitseq/ya.make b/library/cpp/containers/bitseq/ya.make
index 7090956c55..ec000d827e 100644
--- a/library/cpp/containers/bitseq/ya.make
+++ b/library/cpp/containers/bitseq/ya.make
@@ -4,7 +4,7 @@ OWNER(g:util)
PEERDIR(
util/draft
- library/cpp/pop_count
+ library/cpp/pop_count
)
SRCS(
diff --git a/library/cpp/containers/comptrie/chunked_helpers_trie.h b/library/cpp/containers/comptrie/chunked_helpers_trie.h
index cfa35f5ba2..02e998607c 100644
--- a/library/cpp/containers/comptrie/chunked_helpers_trie.h
+++ b/library/cpp/containers/comptrie/chunked_helpers_trie.h
@@ -85,7 +85,7 @@ public:
bool Get(const char* key, T* value) const {
ui64 trieValue;
if (Trie.Find(key, strlen(key), &trieValue)) {
- *value = ReadUnaligned<T>(&trieValue);
+ *value = ReadUnaligned<T>(&trieValue);
return true;
} else {
return false;
@@ -95,7 +95,7 @@ public:
T Get(const char* key, T def = T()) const {
ui64 trieValue;
if (Trie.Find(key, strlen(key), &trieValue)) {
- return ReadUnaligned<T>(&trieValue);
+ return ReadUnaligned<T>(&trieValue);
} else {
return def;
}
@@ -126,9 +126,9 @@ public:
}
void Add(const char* key, const T& value) {
- ui64 intValue = 0;
- memcpy(&intValue, &value, sizeof(T));
- Builder.Add(key, strlen(key), intValue);
+ ui64 intValue = 0;
+ memcpy(&intValue, &value, sizeof(T));
+ Builder.Add(key, strlen(key), intValue);
#ifndef NDEBUG
/*
if (!IsSorted) {
@@ -140,15 +140,15 @@ public:
}
void Add(const TString& s, const T& value) {
- ui64 intValue = 0;
- memcpy(&intValue, &value, sizeof(T));
- Builder.Add(s.data(), s.size(), intValue);
+ ui64 intValue = 0;
+ memcpy(&intValue, &value, sizeof(T));
+ Builder.Add(s.data(), s.size(), intValue);
}
bool Get(const char* key, T* value) const {
ui64 trieValue;
if (Builder.Find(key, strlen(key), &trieValue)) {
- *value = ReadUnaligned<T>(&trieValue);
+ *value = ReadUnaligned<T>(&trieValue);
return true;
} else {
return false;
@@ -158,7 +158,7 @@ public:
T Get(const char* key, T def = (T)0) const {
ui64 trieValue;
if (Builder.Find(key, strlen(key), &trieValue)) {
- return ReadUnaligned<T>(&trieValue);
+ return ReadUnaligned<T>(&trieValue);
} else {
return def;
}
diff --git a/library/cpp/containers/comptrie/comptrie_ut.cpp b/library/cpp/containers/comptrie/comptrie_ut.cpp
index 74bee09b5d..278e36ed0c 100644
--- a/library/cpp/containers/comptrie/comptrie_ut.cpp
+++ b/library/cpp/containers/comptrie/comptrie_ut.cpp
@@ -18,7 +18,7 @@
#include <util/random/fast.h>
#include <util/string/hex.h>
-#include <util/string/cast.h>
+#include <util/string/cast.h>
#include "comptrie.h"
#include "set.h"
diff --git a/library/cpp/containers/sorted_vector/sorted_vector.h b/library/cpp/containers/sorted_vector/sorted_vector.h
index 123539af9e..93c4bdfb44 100644
--- a/library/cpp/containers/sorted_vector/sorted_vector.h
+++ b/library/cpp/containers/sorted_vector/sorted_vector.h
@@ -4,7 +4,7 @@
#include <util/generic/hash.h>
#include <util/generic/vector.h>
#include <util/generic/algorithm.h>
-#include <util/generic/mapfindptr.h>
+#include <util/generic/mapfindptr.h>
#include <util/ysaveload.h>
#include <utility>
@@ -328,10 +328,10 @@ namespace NSorted {
// and then inserts a new one, the existing reference can be broken (due to reallocation).
// Please keep this in mind when using this structure.
template <typename TKeyType, typename TValueType, class TPredicate = TLess<TKeyType>, class A = std::allocator<TValueType>>
- class TSimpleMap:
- public TSortedVector<std::pair<TKeyType, TValueType>, TKeyType, TSelect1st, TPredicate, A>,
- public TMapOps<TSimpleMap<TKeyType, TValueType, TPredicate, A>>
- {
+ class TSimpleMap:
+ public TSortedVector<std::pair<TKeyType, TValueType>, TKeyType, TSelect1st, TPredicate, A>,
+ public TMapOps<TSimpleMap<TKeyType, TValueType, TPredicate, A>>
+ {
private:
typedef TSortedVector<std::pair<TKeyType, TValueType>, TKeyType, TSelect1st, TPredicate, A> TBase;
@@ -379,22 +379,22 @@ namespace NSorted {
Y_FORCE_INLINE TValueType& operator[](const K& key) {
return Get(key);
}
-
+
template<class K>
const TValueType& at(const K& key) const {
- const auto i = TBase::Find(key);
- if (i == TBase::end()) {
- throw std::out_of_range("NSorted::TSimpleMap: missing key");
- }
-
- return i->second;
- }
-
+ const auto i = TBase::Find(key);
+ if (i == TBase::end()) {
+ throw std::out_of_range("NSorted::TSimpleMap: missing key");
+ }
+
+ return i->second;
+ }
+
template<class K>
TValueType& at(const K& key) {
- return const_cast<TValueType&>(
- const_cast<const TSimpleMap<TKeyType, TValueType, TPredicate, A>*>(this)->at(key));
- }
+ return const_cast<TValueType&>(
+ const_cast<const TSimpleMap<TKeyType, TValueType, TPredicate, A>*>(this)->at(key));
+ }
};
// The simplified set (a.k.a TFlatSet, flat_set), which is implemented by the sorted-vector.
diff --git a/library/cpp/containers/stack_vector/stack_vec.h b/library/cpp/containers/stack_vector/stack_vec.h
index fcc5d9a2a5..4fc3f26d89 100644
--- a/library/cpp/containers/stack_vector/stack_vec.h
+++ b/library/cpp/containers/stack_vector/stack_vec.h
@@ -3,23 +3,23 @@
#include <util/generic/vector.h>
#include <util/ysaveload.h>
-#include <type_traits>
-
+#include <type_traits>
+
// A vector preallocated on the stack.
// After exceeding the preconfigured stack space falls back to the heap.
// Publicly inherits TVector, but disallows swap (and hence shrink_to_fit, also operator= is reimplemented via copying).
//
// Inspired by: http://qt-project.org/doc/qt-4.8/qvarlengtharray.html#details
-template <typename T, size_t CountOnStack = 256, bool UseFallbackAlloc = true, class Alloc = std::allocator<T>>
+template <typename T, size_t CountOnStack = 256, bool UseFallbackAlloc = true, class Alloc = std::allocator<T>>
class TStackVec;
template <typename T, class Alloc = std::allocator<T>>
-using TSmallVec = TStackVec<T, 16, true, Alloc>;
-
-template <typename T, size_t CountOnStack = 256>
-using TStackOnlyVec = TStackVec<T, CountOnStack, false>;
+using TSmallVec = TStackVec<T, 16, true, Alloc>;
+template <typename T, size_t CountOnStack = 256>
+using TStackOnlyVec = TStackVec<T, CountOnStack, false>;
+
namespace NPrivate {
template <class Alloc, class StackAlloc, typename T, typename U>
struct TRebind {
@@ -31,10 +31,10 @@ namespace NPrivate {
typedef StackAlloc other;
};
- template <typename T, size_t CountOnStack, bool UseFallbackAlloc, class Alloc = std::allocator<T>>
+ template <typename T, size_t CountOnStack, bool UseFallbackAlloc, class Alloc = std::allocator<T>>
class TStackBasedAllocator: public Alloc {
public:
- typedef TStackBasedAllocator<T, CountOnStack, UseFallbackAlloc, Alloc> TSelf;
+ typedef TStackBasedAllocator<T, CountOnStack, UseFallbackAlloc, Alloc> TSelf;
using typename Alloc::difference_type;
using typename Alloc::size_type;
@@ -58,14 +58,14 @@ namespace NPrivate {
{}
T* allocate(size_type n) {
- if (!IsStorageUsed && CountOnStack >= n) {
- IsStorageUsed = true;
+ if (!IsStorageUsed && CountOnStack >= n) {
+ IsStorageUsed = true;
return reinterpret_cast<T*>(&StackBasedStorage[0]);
} else {
- if constexpr (!UseFallbackAlloc) {
- Y_FAIL(
- "Stack storage overflow. Capacity: %d, requested: %d", (int)CountOnStack, int(n));
- }
+ if constexpr (!UseFallbackAlloc) {
+ Y_FAIL(
+ "Stack storage overflow. Capacity: %d, requested: %d", (int)CountOnStack, int(n));
+ }
return FallbackAllocator().allocate(n);
}
}
@@ -73,15 +73,15 @@ namespace NPrivate {
void deallocate(T* p, size_type n) {
if (p >= reinterpret_cast<T*>(&StackBasedStorage[0]) &&
p < reinterpret_cast<T*>(&StackBasedStorage[CountOnStack])) {
- Y_VERIFY(IsStorageUsed);
- IsStorageUsed = false;
+ Y_VERIFY(IsStorageUsed);
+ IsStorageUsed = false;
} else {
FallbackAllocator().deallocate(p, n);
}
}
private:
- std::aligned_storage_t<sizeof(T), alignof(T)> StackBasedStorage[CountOnStack];
+ std::aligned_storage_t<sizeof(T), alignof(T)> StackBasedStorage[CountOnStack];
bool IsStorageUsed = false;
private:
@@ -91,8 +91,8 @@ namespace NPrivate {
};
}
-template <typename T, size_t CountOnStack, bool UseFallbackAlloc, class Alloc>
-class TStackVec: public TVector<T, ::NPrivate::TStackBasedAllocator<T, CountOnStack, UseFallbackAlloc, TReboundAllocator<Alloc, T>>> {
+template <typename T, size_t CountOnStack, bool UseFallbackAlloc, class Alloc>
+class TStackVec: public TVector<T, ::NPrivate::TStackBasedAllocator<T, CountOnStack, UseFallbackAlloc, TReboundAllocator<Alloc, T>>> {
private:
using TBase = TVector<T, ::NPrivate::TStackBasedAllocator<T, CountOnStack, UseFallbackAlloc, TReboundAllocator<Alloc, T>>>;
using TAllocator = typename TBase::allocator_type;
@@ -131,13 +131,13 @@ public:
}
TStackVec(const TStackVec& src)
- : TStackVec(src.begin(), src.end())
+ : TStackVec(src.begin(), src.end())
{
}
template <class A>
- TStackVec(const TVector<T, A>& src)
- : TStackVec(src.begin(), src.end())
+ TStackVec(const TVector<T, A>& src)
+ : TStackVec(src.begin(), src.end())
{
}
@@ -150,20 +150,20 @@ public:
TStackVec(TIter first, TIter last, const TAllocator& alloc = TAllocator())
: TBase(alloc)
{
- // NB(eeight) Since we want to call 'reserve' here, we cannot just delegate to TVector ctor.
- // The best way to insert values afterwards is to call TVector::insert. However there is a caveat.
- // In order to call this ctor of TVector, T needs to be just move-constructible. Insert however
- // requires T to be move-assignable.
- TBase::reserve(CountOnStack);
- if constexpr (std::is_move_assignable_v<T>) {
- // Fast path
- TBase::insert(TBase::end(), first, last);
- } else {
- // Slow path.
- for (; first != last; ++first) {
- TBase::push_back(*first);
- }
- }
+ // NB(eeight) Since we want to call 'reserve' here, we cannot just delegate to TVector ctor.
+ // The best way to insert values afterwards is to call TVector::insert. However there is a caveat.
+ // In order to call this ctor of TVector, T needs to be just move-constructible. Insert however
+ // requires T to be move-assignable.
+ TBase::reserve(CountOnStack);
+ if constexpr (std::is_move_assignable_v<T>) {
+ // Fast path
+ TBase::insert(TBase::end(), first, last);
+ } else {
+ // Slow path.
+ for (; first != last; ++first) {
+ TBase::push_back(*first);
+ }
+ }
}
public:
@@ -188,25 +188,25 @@ public:
};
template <typename T, size_t CountOnStack, class Alloc>
-class TSerializer<TStackVec<T, CountOnStack, true, Alloc>>: public TVectorSerializer<TStackVec<T, CountOnStack, true, Alloc>> {
-};
-
-template <typename T, size_t CountOnStack, class Alloc>
-class TSerializer<TStackVec<T, CountOnStack, false, Alloc>> {
-public:
- static void Save(IOutputStream* rh, const TStackVec<T, CountOnStack, false, Alloc>& v) {
- if constexpr (CountOnStack < 256) {
- ::Save(rh, (ui8)v.size());
- } else {
- ::Save(rh, v.size());
- }
- ::SaveArray(rh, v.data(), v.size());
- }
-
- static void Load(IInputStream* rh, TStackVec<T, CountOnStack, false, Alloc>& v) {
- std::conditional_t<CountOnStack < 256, ui8, size_t> size;
- ::Load(rh, size);
- v.resize(size);
- ::LoadPodArray(rh, v.data(), v.size());
- }
+class TSerializer<TStackVec<T, CountOnStack, true, Alloc>>: public TVectorSerializer<TStackVec<T, CountOnStack, true, Alloc>> {
};
+
+template <typename T, size_t CountOnStack, class Alloc>
+class TSerializer<TStackVec<T, CountOnStack, false, Alloc>> {
+public:
+ static void Save(IOutputStream* rh, const TStackVec<T, CountOnStack, false, Alloc>& v) {
+ if constexpr (CountOnStack < 256) {
+ ::Save(rh, (ui8)v.size());
+ } else {
+ ::Save(rh, v.size());
+ }
+ ::SaveArray(rh, v.data(), v.size());
+ }
+
+ static void Load(IInputStream* rh, TStackVec<T, CountOnStack, false, Alloc>& v) {
+ std::conditional_t<CountOnStack < 256, ui8, size_t> size;
+ ::Load(rh, size);
+ v.resize(size);
+ ::LoadPodArray(rh, v.data(), v.size());
+ }
+};
diff --git a/library/cpp/containers/stack_vector/stack_vec_ut.cpp b/library/cpp/containers/stack_vector/stack_vec_ut.cpp
index 19f9677781..89821dd4a8 100644
--- a/library/cpp/containers/stack_vector/stack_vec_ut.cpp
+++ b/library/cpp/containers/stack_vector/stack_vec_ut.cpp
@@ -2,13 +2,13 @@
#include <library/cpp/testing/unittest/registar.h>
-namespace {
- struct TNotCopyAssignable {
- const int Value;
- };
-
- static_assert(std::is_copy_constructible_v<TNotCopyAssignable>);
- static_assert(!std::is_copy_assignable_v<TNotCopyAssignable>);
+namespace {
+ struct TNotCopyAssignable {
+ const int Value;
+ };
+
+ static_assert(std::is_copy_constructible_v<TNotCopyAssignable>);
+ static_assert(!std::is_copy_assignable_v<TNotCopyAssignable>);
template <class T, size_t JunkPayloadSize>
struct TThickAlloc: public std::allocator<T> {
@@ -41,8 +41,8 @@ namespace {
return TBase::allocate(n);
}
};
-}
-
+}
+
Y_UNIT_TEST_SUITE(TStackBasedVectorTest) {
Y_UNIT_TEST(TestCreateEmpty) {
TStackVec<int> ints;
@@ -98,34 +98,34 @@ Y_UNIT_TEST_SUITE(TStackBasedVectorTest) {
UNIT_ASSERT_EQUAL(ints3[i], (int)i);
}
}
-
- Y_UNIT_TEST(TestCappedSize) {
- TStackVec<int, 8, false> ints;
- ints.push_back(1);
- ints.push_back(2);
-
- auto intsCopy = ints;
- UNIT_ASSERT_VALUES_EQUAL(intsCopy.capacity(), 8);
-
- for (int i = 2; i != 8; ++i) {
- intsCopy.push_back(i);
- }
- // Just verify that the program did not crash.
- }
-
- Y_UNIT_TEST(TestCappedSizeWithNotCopyAssignable) {
- TStackVec<TNotCopyAssignable, 8, false> values;
- values.push_back({1});
- values.push_back({2});
-
- auto valuesCopy = values;
- UNIT_ASSERT_VALUES_EQUAL(valuesCopy.capacity(), 8);
-
- for (int i = 2; i != 8; ++i) {
- valuesCopy.push_back({i});
- }
- // Just verify that the program did not crash.
- }
+
+ Y_UNIT_TEST(TestCappedSize) {
+ TStackVec<int, 8, false> ints;
+ ints.push_back(1);
+ ints.push_back(2);
+
+ auto intsCopy = ints;
+ UNIT_ASSERT_VALUES_EQUAL(intsCopy.capacity(), 8);
+
+ for (int i = 2; i != 8; ++i) {
+ intsCopy.push_back(i);
+ }
+ // Just verify that the program did not crash.
+ }
+
+ Y_UNIT_TEST(TestCappedSizeWithNotCopyAssignable) {
+ TStackVec<TNotCopyAssignable, 8, false> values;
+ values.push_back({1});
+ values.push_back({2});
+
+ auto valuesCopy = values;
+ UNIT_ASSERT_VALUES_EQUAL(valuesCopy.capacity(), 8);
+
+ for (int i = 2; i != 8; ++i) {
+ valuesCopy.push_back({i});
+ }
+ // Just verify that the program did not crash.
+ }
Y_UNIT_TEST(TestCustomAllocSize) {
constexpr size_t n = 16384;