ADynamicVector#
Vector implementation for ASmallVector.
Header: | #include <AUI/Common/ADynamicVector.h> |
CMake: | aui_link(my_target PUBLIC aui::core) |
Detailed Description#
Note
This vector implementation is indented to use only by ASmallVector. If it's not your case, consider using AVector instead.
Public Methods#
contains#
- Returns
- true if container contains an element, false otherwise.
first#
- Returns
- the first element.
- Sneaky assertions
- Container is not empty.
Examples#
examples/ui/contacts/src/view/ContactDetailsView.cpp
AUI Contacts - Usage of AUI_DECLARATIVE_FOR to make a contacts-like application.
namespace {
_<AView> profilePhoto(const _<Contact>& contact) {
return Centered {
Label {} & contact->displayName.readProjected([](const AString& s) {
return s.empty() ? "?" : AString(1, s.first()).uppercase();
}) AUI_WITH_STYLE { Opacity(0.5f), FontSize { 32_dp } },
} AUI_WITH_STYLE {
FixedSize { 64_dp },
BorderRadius { 32_dp },
BackgroundGradient { AColor::GRAY.lighter(0.5f), AColor::GRAY, 163_deg },
examples/7guis/cells/src/AST.cpp
7GUIs Cells - Spreadsheet processor (Excel).
// should assign it to some operator
for (const auto& o : binaryOperators | ranges::views::reverse) {
if (o.op->right == nullptr) {
o.op->right = std::move(temporaryValue);
AUI_ASSERT(binaryOperators.first().owning != nullptr);
return std::move(binaryOperators.first().owning);
}
}
throw AException {};
}
examples/7guis/cells/src/main.cpp
7GUIs Cells - Spreadsheet processor (Excel).
- Returns
- the first element.
- Sneaky assertions
- Container is not empty.
Examples#
examples/ui/contacts/src/view/ContactDetailsView.cpp
AUI Contacts - Usage of AUI_DECLARATIVE_FOR to make a contacts-like application.
namespace {
_<AView> profilePhoto(const _<Contact>& contact) {
return Centered {
Label {} & contact->displayName.readProjected([](const AString& s) {
return s.empty() ? "?" : AString(1, s.first()).uppercase();
}) AUI_WITH_STYLE { Opacity(0.5f), FontSize { 32_dp } },
} AUI_WITH_STYLE {
FixedSize { 64_dp },
BorderRadius { 32_dp },
BackgroundGradient { AColor::GRAY.lighter(0.5f), AColor::GRAY, 163_deg },
examples/7guis/cells/src/AST.cpp
7GUIs Cells - Spreadsheet processor (Excel).
// should assign it to some operator
for (const auto& o : binaryOperators | ranges::views::reverse) {
if (o.op->right == nullptr) {
o.op->right = std::move(temporaryValue);
AUI_ASSERT(binaryOperators.first().owning != nullptr);
return std::move(binaryOperators.first().owning);
}
}
throw AException {};
}
examples/7guis/cells/src/main.cpp
7GUIs Cells - Spreadsheet processor (Excel).
fromRange#
template<aui::incrementable Iterator, aui::invocable<decltype(* std::declval<Iterator>())> UnaryOperation >
static auto ADynamicVector::fromRange(aui::range<Iterator> range, UnaryOperation&& transformer)
Constructs a new vector of transformed items of the range.
- Arguments
range
items to transform from.transformer
transformer function.- Returns
- A new vector.
indexOf#
AOptional<size_t> ADynamicVector::indexOf(const StoredType& value)
- Arguments
value
element to find.- Returns
- index of the specified element. If element is not found, std::nullopt is returned.
insertAll#
- Arguments
c
other container- Returns
- iterator pointing to the first element inserted.
Inserts all values of the specified container to the end.
- Arguments
c
other container- Returns
- iterator pointing to the first element inserted.
Inserts all values of the specified container to the end.
template<typename OtherContainer >
iterator ADynamicVector::insertAll(iterator at, const OtherContainer& c)
- Arguments
at
position to insert at.c
other container- Returns
- iterator pointing to the first element inserted.
Inserts all values of the specified container.
template<typename OtherContainer >
iterator ADynamicVector::insertAll(iterator at, OtherContainer&& c)
- Arguments
at
position to insert at.c
other container- Returns
- iterator pointing to the first element inserted.
Inserts all values of the specified container.
isSubsetOf#
- Returns
- true if
c
container is a subset of this container, false otherwise.
last#
- Returns
- the last element.
- Sneaky assertions
- Container is not empty.
Examples#
examples/7guis/cells/src/AST.cpp
7GUIs Cells - Spreadsheet processor (Excel).
if (temporaryValue) {
throw AException("SYNTAX");
}
if (!binaryOperators.empty()) {
if (binaryOperators.last().op->right) {
throw AException {};
}
binaryOperators.last().op->right = std::move(node);
return;
}
- Returns
- the last element.
- Sneaky assertions
- Container is not empty.
Examples#
examples/7guis/cells/src/AST.cpp
7GUIs Cells - Spreadsheet processor (Excel).
if (temporaryValue) {
throw AException("SYNTAX");
}
if (!binaryOperators.empty()) {
if (binaryOperators.last().op->right) {
throw AException {};
}
binaryOperators.last().op->right = std::move(node);
return;
}
removeAll#
- Arguments
item
element to remove.
Removes all occurrences of item
.
removeAt#
void ADynamicVector::removeAt(size_t index)
- Arguments
Removes element at the specified index.
- Sneaky assertions
index
points to the existing element.
removeFirst#
- Arguments
item
element to remove.
Removes first occurrence of item
.
removeIf#
- Arguments
predicate
predicate
Removes element if predicate(container[i])
== true.