我是 C++ map 的新手。我想在我的程序中使用如下所示的 map 。
std::map<std::pair<int,int>,string> pattern
这里的键 int,int
实际上是二维网格和列的行位置和列位置最初是未知的。所以我想到了将列初始设置为值0。在程序过程中,它也可能是负数。那么谁能帮助我如何访问和设置此类 map 的元素?
最佳答案
只要您在 C++11 模式下编译(从 2014 年开始,您应该这样做),该对的值就可以指定为 braced-init-list,例如{ 4, -13 }
,在map
的大部分接口(interface)函数中。这不适用于 emplace
或任何其他使用完美转发的东西。
例如:
patterns[{ 1, 2 }] = "hello"; // set a given element
patterns.at[{ 1, 2 }] = "Hello"; // alter a given pre-existing element
foo( patterns.at[{ 1, 2 }] ); // pass a (reference to) pre-existing element
patterns.erase({ 3 , 4 }); // ensure that given element no longer exists
关于c++ - 在 C++ 中使用 map<pair<int,int>,string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22137792/