Shared_ptr<> 是如何实现的?安全地允许强制转换 bool?
我正在研究 std::tr1::shared_ptr<> 如何提供转换为 bool 的能力。过去,当我尝试创建一个可以转换为 bool 的智能指针作为简单的解决方案时,我就…
std::向量和双* - 这有多安全?
这样做安全吗? double darray[10] vector<float> fvector fvector.insert(fvector.begin(), darray, darray + 10) // double to float conversio…
STL List复制一个struct,但是复制的值偏移了两个内存地址
我正在使用 MinGW 编译器在 Windows 7 上使用 Code::Blocks 进行编译(我只能假设它是最新版本;Code::Blocks 和 MinGW 都是在上周安装的)。我的问题…
C++:部分应用困难
我正在尝试使用函数参数的部分应用,以便可以使用 STL 的 find_if。这是一个示例程序:(为了简洁起见,合并了类头和实现。) #include <functional…
std::map 的单元测试
有谁知道我在哪里可以找到将测试 std::map 的单元测试? 我问的原因是因为我编写了一个类来替代 std::map 并且具有几乎所有相同的功能,因此对 std::m…
std::reverse_iterator 有哪些缺点?
boost 的专用迭代器适配器的文档 指出 boost::reverse_iterator “纠正了 C++98 std::reverse_iterator 的许多缺点。” 这些缺点是什么?我似乎找不到…
为什么 C++ STL iostreams 不“异常友好”?
我习惯了 Delphi VCL 框架,其中 TStream 会在错误时抛出异常(例如,文件未找到、磁盘已满)。我正在移植一些代码以使用 C++ STL,并且被 iostreams …
为什么堆在 c++ 中?作为算法而不是容器来实现?
我想知道为什么堆概念是作为算法实现的(make_heap、pop_heap、push_heap、sort_heap)而不是一个容器。我特别感兴趣的是,某些人的解决方案也可以解…
如何在 for_each 中组合函数和谓词?
如何使用 for_each() 在容器的某些部分上调用函数? 我创建了一个 for_each_if() 来执行 a for( i in shapes ) if( i.color == 1 ) displayShape(i) …
c++ STL 队列、引用和分段错误
通过将 java 程序转换为 c++ 来学习 C++ 的新手。以下代码在执行时会导致分段错误 (SIGSEGV)。 //add web page reference to pages queue (STL) void …
关于 C++ 的堆栈实现的一个快速问题标准库
该行是什么: template<typename _Tp1, typename _Seq1> friend bool operator==(const stack<_Tp1, _Seq1>&, const stack<_Tp1, _Seq1&…
游戏编程中,具体有哪些C++或者导致性能消耗的 STL 功能?
我的问题主要是关于 STL,而不是 C++ 的其余部分,(我猜)可以与 C 一样快,只要不是在每个角落都使用类。 STL是游戏和OGRE3D等引擎的标准,但我想知…