stl 相关问题

标准模板库(STL)是通用容器,迭代器,算法和函数对象的C ++库。当C ++被标准化时,STL的大部分被采用到标准库中,并且标准库中的这些部分有时也被错误地统称为“STL”。

如何在 C++ 中为向量内的一系列元素赋值?

我有一个整数向量,例如 {0, 0, 0, 0, 0}。我需要将一系列元素的 v[i] 加 1,例如 v[1] 到 v[3],以便得到 {0, 1, 1, 1, 0}。如何做到这一点?

回答 2 投票 0

在 STL 中选择具有最快插入和查找速度的数据结构

我正在寻找一种在STL中存储整数的数据结构。 我要支持的主要操作是插入和删除、查找前20个元素、查找第k大元素...

回答 1 投票 0

使用 unordered_set/unordered_multiset 导致迭代器失效

我知道,unordered_set 会使迭代器无效: “如果发生重新散列(由于插入),所有迭代器都会失效。” 很明显,因为我们有带桶的哈希表,但是......

回答 1 投票 0

如何从GCC源正确升级STL

我从源代码构建了 gcc/g++ 10.5.0,因为我猜测 v10.5.0 比 v10.2.1 更稳定,v10.2.1 是我可以从 Debian-11 官方 apt 存储库获得的最新版本。 制作脚本...

回答 1 投票 0

为什么在自定义视图类型中使用 std::move 和 std::list 会导致无限递归?

当我决定修改提供的代码示例以查看它是否适用于 std::list 时,我正在阅读 Rainer Grimm 的书《C++20:获取有关定义自己的视图类型的详细信息》的第 5.1.7.2 节。

回答 2 投票 0

使用结构化绑定声明来解包 std::equal_range 的结果

出于可读性考虑,我避免在复杂代码中使用 std::pair 来保持变量名称有意义。 考虑到 std::equal_range 返回 std::pair 迭代器,是不是

回答 1 投票 0

从标准 I\O 流读取和写入会导致错误

为什么这会导致我的程序以以下退出代码结束 双端队列 di((istream_iterator(cin)), (istream_iterator())); 复制(di.begin(),di.end(),ostream_iterator&l...

回答 1 投票 0

标准算法库中的哪些算法进行分配?有没有办法指定这种分配如何发生?

我想更多地使用标准算法,但对控制内存分配有一些非常严格的要求。 有分配哪些算法的完整列表吗? 还有,是...

回答 3 投票 0

这是结合 std::generate_n 和 std::back_inserter 的正确方法吗?

在我的追求中:)尽可能多地使用STL,我想知道是否可以组合使用std::generate和std::back_inserter,以便我可以做与以下代码相同的事情: 静电...

回答 1 投票 0

Deque - 为什么“reserve”不存在?

标准STL向量容器有一个“保留”功能来保留未初始化的内存,以便以后使用以防止重新分配。 为什么其他双端队列容器没有?

回答 7 投票 0

为什么是reverse_iterator::base偏移量?

+-- v.begin() +-- v.end() | | 伏 +---+---+---+---+---+---+ - + |哦|哦|哦|哦|哦|哦| x| +---+---+---+---+---+---+...

回答 2 投票 0

按降序对向量进行排序

我应该使用 std::sort(numbers.begin()、numbers.end()、std::greater()); 或者 std::sort(numbers.rbegin(),numbers.rend()); // 注意:反向迭代器 按降序对向量进行排序或...

回答 12 投票 0

为什么在自定义视图类型中使用`std::move`和`std::list`会导致无限递归?

当我决定修改提供的代码示例以查看它是否适用于 std::list 时,我正在阅读 Rainer Grimm 的书《C++20:获取有关定义自己的视图类型的详细信息》的第 5.1.7.2 节。

回答 1 投票 0

为什么 GCC 会为 `std::ranges::max` 中的每次比较复制对象?

考虑以下示例(Godbolt): #包括 #包括 #包括 #包括 结构A { A() {} A( const A& ) { std::co...

回答 1 投票 0

使用成员函数作为比较器进行问题排序

尝试编译以下代码时出现此编译错误,我该怎么办? ISO C++ 禁止获取地址 不合格的或带括号的 非静态成员函数形成 点...

回答 10 投票 0

即使我在 std::set 中插入了 20 个(不同的)元素,它的大小也只有 14?

typedef 向量 vec; 结构类comp { bool 运算符() (const vec& vec1, const vec& vec2) const{ 如果 (vec1[0] > vec2[0]){ 返回真; ...

回答 1 投票 0

这是 std::quote bug 的行为吗?

我想用自定义类型做与 std::quote 相同的事情,但我想错过使用这种具有临时右值的 API。经过一番使用 std::quoted 后,我发现了以下内容......

回答 2 投票 0

如何在没有 lambda 的 std::function 向量上调用 std::for_each?

我想要存储在向量中的回调函数,例如, std::vector xs{}; std::for_each(xs.begin(), xs.end(), [](auto& func) { func(); }); 但我该如何...

回答 1 投票 0

STL Push_back:推送动态变化的数组时修改先前的值

我的 CPP 代码中的 std::vector.push_back() 遇到了一个非常奇怪的问题。基本上,我所做的就是: 无效函数() { 如果(第一次来这里) { do_some_stuff(); V.push_back(垫::

回答 2 投票 0

可以打印对象的名称吗?

我已经知道无论是在 C 中还是在 C++ 中都不可能打印变量的名称,这在其他 StackOverflow 帖子中提到过。 但是我知道在其他语言中,比如 Delphi,...

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.