系列文章目录
主要讲解一下map的应用
前言
std::map<int,int>可以实现按照key值自动从小到大排序
一、map使用
std::map<int, int> stu;
1. 初始化
stu.insert(std::map<int, int>::value_type(3, 3));
stu.insert(std::map<int, int>::value_type(2, 2));
stu.insert(std::map<int, int>::value_type(1, 1));
2.取第一个迭代器
cout << stu.begin()->first << endl;
3. 取最后一个迭代器
cout << stu.rbegin()->first << endl;
需要排序的例子:将计算出的单向带和空白路径按照其对应的索引排序
//先存在map容器按照边的索引从大到小排序
std::vector<EdgeNode> endnodes;
std::map<int, Edge::Ptr> endchose;
for (auto single : singleedges)
{
endchose.insert(single);
}
for (auto noconflict : noconflictedges)
{
endchose.insert(noconflict);
}
for (auto edge : endchose)
{
agv_local_nodes.localnodes.insert(agv_local_nodes.localnodes.end(), edge.second->discrNodes.begin(), edge.second->discrNodes.end());
}
总结
如果想对数据按照从小到大的顺序进行保存,并保存每个值对应的其他信息,可以以键值对的形式保存在map中。
#二、vector使用
std::vector<int> vec;
获取第一个元素方式:
//1.下标访问:
vec[0]
//2.调用front函数
vec.front();
//3.先拿迭代器再取值
*vector.begin();