使用运算符 [] 时的 std::map 段错误
我有一个奇怪的问题。 我正在使用工厂注册模式,该模式在内部引用 std::map。 我将这种方法用于多个组件,并且注册发生在不同编译单元(也称为 .cpp …
std::map::插入麻烦
我有非常简单和愚蠢的麻烦: std::map mTakePoints; mTakePoints.insert(std::make_pair(point, body)); 编译器说: In file included from /usr/incl…
std::map 节点对齐
我正面临着一些非常奇妙的事情。 (场景:Win7 pro 64位,VC2008编译32位代码) 假设主程序实例化一个使用std::map的Class。 这是一个 std::map ;其…
避免在没有原始指针的情况下复制映射的键
每次在键为 std::string 的 std::map 中插入一对时,它都会生成两个副本。您可以避免使用原始指针,但它是异常不安全的。有没有办法使用智能指针而不…
为什么使用指向模板函子的指针作为 value_type 的 Map 不起作用?
当我尝试创建一个值类型为指向模板函子的指针的 std::map 时,Visual Studio 会崩溃。我在这里做违法的事情吗? // Functor prototype template class…
我需要删除静态 std::map 吗?
在某些类中,我有一个内部有指针的静态 std::map 。我的问题是我是否需要在程序结束时删除或者该内存会自动释放。我担心的是,当删除 std::map 时,存…
为什么会出现多态类型错误和清理问题?
#include #include #include #include class base {}; class derived1 : public base { public: unsigned short n; derived1() { n = 2; } }; class d…
访问 std::map 键和值
如何访问 std::map 的键或值的 std::vector ? 谢谢。 编辑:我想访问实际元素,而不仅仅是其内容的副本。本质上我想要一个参考,而不是副本。 这本质…
std::map 内置类型的默认值
最近,我对 std::map operator[] 函数感到困惑。 在 MSDN 库中,它说:“如果未找到参数键值,则将其与数据类型的默认值一起插入。” 我试图为这个问…
boost::tuple 和 std::map 的分段错误
我在使用类似于以下代码的代码时遇到问题: std::map, int> m; boost::tuple key = boost::make_tuple(1,2,3); m.find(key); 编译器没有看到任何错误…
有没有办法让 std::map 来“编辑”像键的谓词这样的值?
我想知道是否可以为 std::map 的所有值创建类似谓词的东西,这样我就不必在将它们插入映射之前编辑这些值。 我想要的是这样的: mymap["username"] = …
为什么 std::map::operator[] 如此违反直觉?
在我看来,通常用于访问数据结构的运算符突然被定义为将数据插入到数据结构中,这似乎是“邪恶的”(在 C++ FAQ 中)。 我想问题是“什么会更好”?对…
如何比较 boost::variant 以便使其成为 std::map 的键?
如何比较 boost::variant 以便使其成为 std::map 的键? 似乎没有为 boost::variant 定义operator<()…
插入地图的首选/惯用方式是什么?
我已经确定了将元素插入 std::map 的四种不同方法: std::map function; function[0] = 42; function.insert(std::map::value_type(0, 42)); function…