stl相关内容
我已经设法了解了 C++ 的一些功能能力(for_each、映射函数、使用迭代器...),但是用于接收通用容器和迭代器的模板和函数参数列表的构造仍然让我难以理解.我有一个实际的例子,希望有人可以为我说明: 采用以下函数来处理传入的 std::vector 并构建一个进程的许多数据点/迭代的运行总数: /* for-loop 方法 - 不是很精通 */无效UpdateRunningTotal
..
新的 C++11 标准需要 STL 实现来支持容器中的有状态分配器.现在主要的 STL 实现(Visual Studio 2008、2010、libstdc++)是否符合这个要求?我在 MSDN 或 libstdc++ 文档中一无所获. 解决方案 看起来 STL 容器中的状态分配器功能已经得到广泛支持.在大多数情况下,分配器的状态性不会造成麻烦.尚未得到广泛支持的是新标准处理问题情况的方式
..
我正在尝试找出以下问题. 假设我在 C++ 中有以下容器: std::set>我的容器; 这个集合(字典)按照 std::pair 上的顺序 排序,这是字典顺序.我的任务是在 my_container 中找到第一个坐标等于 x 的 any 元素,并将迭代器返回给它.显然,我不想使用 find_if,因为我需要在对数时间内解决这个问题. 我会很感激任何关于如何做到这一点的建议
..
..
我发现自己一直在编写 Mutex 代码,以便同步对 std::unordered_map 和其他容器的读/写访问,以便我可以像使用 java.util.concurrent 容器一样使用它们.我正要开始编写一个包装器来封装 Mutex,但我宁愿使用一个经过良好测试的库,这样我就不会塞满线程. 有这样的图书馆吗? 解决方案 Intel 制作了一个名为 Threading Buildin
..
我无法在 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
..
使用不匹配的 std::allocator 特化(当然,除了 void 的特化)作为 STL 容器的模板参数(不是全部)在技术上是否有效,但在下面列举加上 unordered_(multi)map/set)?以下代码编译正常. #include #include #include #include #include 主函数(){str
..
在 C++ 中存储位数组的最佳方式是什么(没有 Boost,只有标准容器),例如表示卷分配位图? 我认为 std::vector 是个好主意,但 显然它是邪恶的并且已被弃用,那么有更好的选择吗? 还有: 如果我在内存中有一个字节数组,我将如何将它们复制到推荐的容器中? (我无法为 vector 弄清楚这一点.) 解决方案 6 年后才发这个给后人:
..
..
为 STL 容器(例如 std::vector)提供分配器作为模板参数有什么区别,例如: std::vector>一些整数; 并提供一个分配器作为构造函数参数,例如: std::allocator温度;std::vector一些整数(临时); 考虑到它们不是同一个东西(即一个提供一个类型,另一个提供一个类型实例)并且可以彼此分开使用,那么它们的优点是什么? 解决方案 可以
..
..
我的以下代码应该检测 T 是否有 begin 和 end 方法: 模板结构 is_container{模板 ;结构 sfinae {};模板静态字符测试(sfinae
..
..
..
我是 C++ 的新手,正在阅读《C++ 编程语言(第 4 版)》一书.阅读《STL Containers》章节时,书中对forward_list有介绍: forward_list(单链表)基本上是一个优化的列表对于空的和非常短的列表.一个空的 forward_list 只占用一个词.令人惊讶的是,列表有很多用途,其中大多数是空的(其余的都很短). 我想知道一个列表有多短?谁能举一个简单
..
如果我想在容器的开头也推送元素,我应该使用双端队列而不是向量吗?什么时候应该使用 list,它有什么意义? 解决方案 如果需要在序列的开头和结尾进行高效的插入/删除和随机访问,请使用 deque;如果您需要在任何地方有效插入,请使用 list,但会牺牲随机访问.list 元素的迭代器和引用几乎在容器的任何突变下都非常稳定,而 deque 具有非常奇特的迭代器和引用失效规则(因此请仔细检
..
我想从 并行 运行线程访问基于 STL 的容器只读.不使用任何用户实现的锁定.以下代码的基础是 C++11,并正确实现了该标准. http://gcc.gnu.org/onlinedocs/libstdc++/manual/using_concurrency.html http://www.sgi.com/tech/stl/thread_safety.html http://www.hp
..
很多时候,我发现自己不得不为多维数据定义一个容器. 举个例子:我有很多芯片,每个芯片有很多寄存器,每个寄存器有很多单元,每个单元有很多晶体管. 在我的 C++ 程序的某个阶段,我必须读取这些数据,然后我必须使用它. 我不能为这些数据使用任何外部存储:文件、数据库等. 那么,我应该创建一些多维 STL 容器吗?一张矢量地图,或者类似的东西……? 或者我应该为它们中的每一
..
我有一个函数 void doSomething(listlist1, listlist2) 和类 B 类:AC类:A 有没有像这样直接调用我的函数的方法 void doSomething(list listOfB, list listOfC) 或者我必须像手动包装它 void doSomething(list listOfB, list
..
我希望能够创建一个函数,在其中我指定一个参数以同时具有模板化容器和该容器的模板化元素类型.这可能吗?我收到“错误 C2988:无法识别的模板声明/定义"等.这是有问题的函数. templatevoid readIntoP(IteraCont){ifstream ifss("data.dat");字符串aString;整数计数器 = 0;项目临时项目;while(ifss >> 字符串){istr
..