标准模板库(STL)是通用容器,迭代器,算法和函数对象的C ++库。当C ++被标准化时,STL的大部分被采用到标准库中,并且标准库中的这些部分有时也被错误地统称为“STL”。
有没有一种方法可以从另一个迭代器构造一个迭代器,该迭代器总是前进(在 std::advance 的意义上)一个数字 n ?我想将迭代器传递给 std::transform 但变换...
创建 std::weak_ptr 为数组类型 std::shared_ptr 的索引值?
我有一个很大的数据集,基本上是这样加载的: for(int i=0;i(Object()); //用ptr做事 } 这对于表演来说不太好......
我正在查看 stl 矢量的 API 文档,注意到矢量类上没有允许删除具有特定值的元素的方法。这似乎是一个常见的操作...
如何在STL算法中将模板类型注册为有效的value_type
我正在尝试编写一个模仿STL列表的自定义容器。我提供了一个 List 类(未显示)、一些基本功能和一个自定义双向迭代器。尝试符合 STL 标准...
如何在从另一个容器创建 std::vector 时确保一次性内存分配?
当我需要从另一个容器的某些元素创建 std::vector 时,例如另一个向量,确保新向量仅在内存中分配一次的最安全方法是: std::向量&l...
我想动态分配一个int,然后将相应的指针推入向量中。使用后,我将向量的所有元素设置为nullptr,但原始指针并没有变成nullptr。 ...
我想要“新”int 指针,并将其推回到向量中。 使用后,我将向量的元素设置为nullptr,但原始指针不会变成nullptr。 为什么会出现这种情况? 万一我必须使用原始的
我正在列表初始化一对整数的向量。 我按照预期理解了以下工作: int main() { std::vector> vpairs_first{std::make_pair(0, 1), std::make...
尝试培养一种通过前向和后向迭代器使用索引寻址向量元素的直觉。因为,例如根据 en.cppreference.com, “对于反向迭代器 r 构造...
我正在尝试找出一种很好的方法来查找向量中某个对象的索引 - 通过将字符串与对象中的成员字段进行比较。 像这样: 查找(向量.开始(),向量.结束(),[对象
在下面的代码中,值向量包含按索引索引的数据。它对于排序或搜索效果很好,而我必须在比较器中处理一个值(实际上是一对)......
我正在用Js模式写一个类似STL的容器库js-sdsl。 有一个关于STL RB-Tree中的自减函数(迭代器的前向函数)的问题。 当我插入两个不同的值时我...
为什么 std::flat_set 和 std::flat_map 具有 std::initializer_list 的重载构造函数,而其他容器适配器则没有?
我注意到 C++23 为 std::stack 和 std::queue 容器适配器的构造函数添加了新的重载,允许使用范围 [first, ...
在下面的代码中,值向量包含按索引索引的数据。模板索引允许对 std::ranges::equal_range 等函数进行透明索引,但我看不到排序的方法...
我正在编写一些 Windows 和 Mac 之间的跨平台代码。 如果 list::end() “返回一个迭代器,该迭代器寻址列表中最后一个元素之后的位置”,并且可以在
如何在从另一个容器创建 std::vector 时确保一次性内存分配?
当我需要从另一个容器(假设是另一个向量)的某些元素创建 std::vector 时,最安全的方法是确保新向量仅在内存中分配一次(从技术上讲,
我有一个整数向量,例如 {0, 0, 0, 0, 0}。我需要将一系列元素的 v[i] 加 1,例如 v[1] 到 v[3],以便得到 {0, 1, 1, 1, 0}。如何做到这一点?
我正在寻找一种在STL中存储整数的数据结构。 我要支持的主要操作是插入和删除、查找前20个元素、查找第k大元素...
使用 unordered_set/unordered_multiset 导致迭代器失效
我知道,unordered_set 会使迭代器无效: “如果发生重新散列(由于插入),所有迭代器都会失效。” 很明显,因为我们有带桶的哈希表,但是......