c++ - 在 C++ 中使用 map<pair<int,int>,string>

标签 c++

我是 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/

相关文章:

c++ - 访问结构列表中的列表元素

c++ - 如何设置默认参数以防用户未输入另一个参数

c++ - 3D 金字塔与 OPENGL

c++ - 在 C++/CX 中绑定(bind) IValueConverter 类时出错

c++ - 使用window api关键设置和事件引起的死锁

c++ - 这种间接函数调用的优点是什么?

c++ - 模板继承 - 分配失败

c++ - 如何读取 C++ 中的 JSON 内容?

c++ - 如何重用函数专门化代码?

c++ - 包含不透明文本和按钮的透明窗口