c++地图帮助
Help with map C++
我有一个映射,链接size_t到size_t和int对
std::map< size_type, std::pair<size_t, unsigned int> > mapVals;
基本上我对此的理解是,映射的工作原理类似于堆栈,JST一个接一个地插入,给出类似于:
1 -> (2,2)
2 -> (4,7)
3 -> (8,5)
etc.
我的问题是,我如何获得int的值。即2,7,5
。我想用这个值作为while循环的最大长度
映射与堆栈不同;堆栈保持先入后出(FILO)策略。映射是将键映射到值的操作。
如果你这样做:
typedef std::pair<size_t,unsigned_int> my_pair;
// Insert elements
my_map[3] = my_pair(2,2);
my_map[9] = my_pair(4,7);
my_map[7] = my_pair(8,5);
可以检索pair的第二个元素:
my_map[9].second // evaluates to 7
要访问int类型,可以执行以下两种操作之一
unsigned int myint = mymap[key].second;
,其中key
为size_t
型。这是有效的,因为在map上使用[size_t]
返回std::pair<size_t, unsigned int>
,然后在此调用.second
获得int。
也可以使用迭代器
std::map<size_t, std::pair<size_t, unsigned int> >::iterator itr = mymap.begin(); // say
unsigned int myint = itr->second.second;
typedef std::map< size_type, std::pair<size_t, unsigned int> > mymapT;
mymapT mapVals;
... // fill the map
first = mapVals[1].second;
second = mapVals[2].second;
third = mapVals[3].second;
... // do something useful
你可以这样做:
typedef std::map< size_type, std::pair<size_t, unsigned int> > myMap;
myMap mapVals;
// ... populate
myVals[1] = std::pair<size_t, unsigned int>(2,2);
// ...
for (myMap::const_iterator it = myVals.begin(); it != myVals.end(); ++it)
unsigned int each_value = it->second.second;
第一个it->second
将为您提供std::pair <size_t, unsigned int>
元素。第二个second
将为您提供该对中包含的unsigned int
。
我不知道你到底想要什么
for (std::map< size_type, std::pair<size_t, unsigned int> >::iterator it = mapVals.begin(); it != mapVals.end() ; it++)
cout << it->second.first << " " << it->second.second << endl;
- it->second:是map的
Value
部分(在本例中std::pair<size_t,>) - >第二。second:是对的第二部分(unsigned int)
相关文章:
- 为什么不;名字在地图上是按顺序排列的吗
- 需要帮助设置在C++中使用的Potrace
- 基于多个条件处理地图中的所有元素
- 在指针的帮助下,文本文件中单词的频率
- 在C++中将矢量转换为嵌套地图
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 需要帮助将结构数组传递给函数
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 替换基于地图的所有引用
- 如何区分地图中的 0 和 false?
- 地图计数确实很重要,或者只是检查是否存在
- 如何从地图中删除矢量对象
- 是否有任何C++功能可以对地图进行排序?
- 如何使用 std::variant 打印地图键/值?
- 从矢量或地图中删除共享指针
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- 如何在三重运算符的帮助下通过最大值完成地图
- c++地图帮助
- 帮助提高地图遍历 C++ 的效率