stl相关内容

重构一个“愚蠢的"将函数转换为具有容器迭代器的通用 STL 样式

我已经设法了解了 C++ 的一些功能能力(for_each、映射函数、使用迭代器...),但是用于接收通用容器和迭代器的模板和函数参数列表的构造仍然让我难以理解.我有一个实际的例子,希望有人可以为我说明: 采用以下函数来处理传入的 std::vector 并构建一个进程的许多数据点/迭代的运行总数: /* for-loop 方法 - 不是很精通 */无效UpdateRunningTotal ..
发布时间:2022-01-24 21:24:40 C/C++开发

编译器对 STL 容器中的状态分配器的支持

新的 C++11 标准需要 STL 实现来支持容器中的有状态分配器.现在主要的 STL 实现(Visual Studio 2008、2010、libstdc++)是否符合这个要求?我在 MSDN 或 libstdc++ 文档中一无所获. 解决方案 看起来 STL 容器中的状态分配器功能已经得到广泛支持.在大多数情况下,分配器的状态性不会造成麻烦.尚未得到广泛支持的是新标准处理问题情况的方式 ..
发布时间:2022-01-24 21:20:08 C/C++开发

查找集合中具有特定第一个坐标的任何元素<pair>>

我正在尝试找出以下问题. 假设我在 C++ 中有以下容器: std::set>我的容器; 这个集合(字典)按照 std::pair 上的顺序 排序,这是字典顺序.我的任务是在 my_container 中找到第一个坐标等于 x 的 any 元素,并将迭代器返回给它.显然,我不想使用 find_if,因为我需要在对数时间内解决这个问题. 我会很感激任何关于如何做到这一点的建议 ..
发布时间:2022-01-24 21:19:59 C/C++开发

C++ 11 等效于 java.util.ConcurrentHashMap

我发现自己一直在编写 Mutex 代码,以便同步对 std::unordered_map 和其他容器的读/写访问,以便我可以像使用 java.util.concurrent 容器一样使用它们.我正要开始编写一个包装器来封装 Mutex,但我宁愿使用一个经过良好测试的库,这样我就不会塞满线程. 有这样的图书馆吗? 解决方案 Intel 制作了一个名为 Threading Buildin ..
发布时间:2022-01-24 21:14:24 其他开发

如何在 gdb 中转储 STL 容器数据?

我无法在 gdb 中转储 STL 无序映射容器值.变量类型是std::unordered_mapvar; 我的 gdb 版本 - 7.7.1gdb 配置: 配置 --host=x86_64-linux-gnu --target=x86_64-linux-gnu--with-auto-load-dir=$debugdir:$datadir/auto-load--with-auto-load ..
发布时间:2022-01-24 21:14:07 C/C++开发

如何在 C++ 中存储位数组?

在 C++ 中存储位数组的最佳方式是什么(没有 Boost,只有标准容器),例如表示卷分配位图? 我认为 std::vector 是个好主意,但 显然它是邪恶的并且已被弃用,那么有更好的选择吗? 还有: 如果我在内存中有一个字节数组,我将如何将它们复制到推荐的容器中? (我无法为 vector 弄清楚这一点.) 解决方案 6 年后才发这个给后人: ..
发布时间:2022-01-24 21:11:35 C/C++开发

在 C++ 容器中作为模板参数提供的分配器和作为构造函数参数提供的分配器之间的区别?

为 STL 容器(例如 std::vector)提供分配器作为模板参数有什么区别,例如: std::vector>一些整数; 并提供一个分配器作为构造函数参数,例如: std::allocator温度;std::vector一些整数(临时); 考虑到它们不是同一个东西(即一个提供一个类型,另一个提供一个类型实例)并且可以彼此分开使用,那么它们的优点是什么? 解决方案 可以 ..
发布时间:2022-01-24 21:09:59 C/C++开发

何时使用 C++ forward_list

我是 C++ 的新手,正在阅读《C++ 编程语言(第 4 版)》一书.阅读《STL Containers》章节时,书中对forward_list有介绍: forward_list(单链表)基本上是一个优化的列表对于空的和非常短的列表.一个空的 forward_list 只占用一个词.令人惊讶的是,列表有很多用途,其中大多数是空的(其余的都很短). 我想知道一个列表有多短?谁能举一个简单 ..
发布时间:2022-01-24 21:03:20 C/C++开发

STL Containers - 向量、列表和双端队列之间的区别

如果我想在容器的开头也推送元素,我应该使用双端队列而不是向量吗?什么时候应该使用 list,它有什么意义? 解决方案 如果需要在序列的开头和结尾进行高效的插入/删除和随机访问,请使用 deque;如果您需要在任何地方有效插入,请使用 list,但会牺牲随机访问.list 元素的迭代器和引用几乎在容器的任何突变下都​​非常稳定,而 deque 具有非常奇特的迭代器和引用失效规则(因此请仔细检 ..
发布时间:2022-01-24 21:02:16 C/C++开发

C++ 多维数据处理

很多时候,我发现自己不得不为多维数据定义一个容器. 举个例子:我有很多芯片,每个芯片有很多寄存器,每个寄存器有很多单元,每个单元有很多晶体管. 在我的 C++ 程序的某个阶段,我必须读取这些数据,然后我必须使用它. 我不能为这些数据使用任何外部存储:文件、数据库等. 那么,我应该创建一些多维 STL 容器吗?一张矢量地图,或者类似的东西……? 或者我应该为它们中的每一 ..
发布时间:2022-01-24 20:57:40 C/C++开发

C++ 模板 - 指定容器类型和它所拥有的容器元素类型

我希望能够创建一个函数,在其中我指定一个参数以同时具有模板化容器和该容器的模板化元素类型.这可能吗?我收到“错误 C2988:无法识别的模板声明/定义"等.这是有问题的函数. templatevoid readIntoP(IteraCont){ifstream ifss("data.dat");字符串aString;整数计数器 = 0;项目临时项目;while(ifss >> 字符串){istr ..
发布时间:2022-01-24 20:52:37 C/C++开发