如何使用带有列表作为值的无序列图
How to use an unordered map with lists as a values
我正在尝试弄清楚如何以列表作为值来操纵无序地图。是否可以通过指定的字符串键将列表分配给值,然后向该列表添加某个值或修改它或替换整个列表?我也不明白您将如何打印特定列表。
例:
std::unordered_map <string, list<int> > testmap;
list<int> templist;
templist.pushfront(10);
templist.pushfront(5);
testmap["First"] = templist;
如何从无序列图中打印列表临时列表,以及如何在将其分配给"第一个"后添加到列表中
如何从无序列图中打印列表临时列表以及如何打印 在分配给"第一"后添加到列表中
这是一个演示程序
#include <iostream>
#include <string>
#include <list>
#include <unordered_map>
int main()
{
std::unordered_map<std::string, std::list<int>> testmap;
std::list<int> templist;
templist.push_front( 10 );
templist.push_front( 5 );
testmap["First"] = templist;
for ( const auto &item : testmap["First"] ) std::cout << item << ' ';
std::cout << 'n';
testmap["First"].push_front( 0 );
for ( const auto &item : testmap["First"] ) std::cout << item << ' ';
std::cout << 'n';
}
程序输出为
5 10
0 5 10
或者你甚至可以使用一个普通循环(或标准算法,如std::copy(来输出列表。
#include <iostream>
#include <string>
#include <list>
#include <unordered_map>
int main()
{
std::unordered_map<std::string, std::list<int>> testmap;
std::list<int> templist;
templist.push_front( 10 );
templist.push_front( 5 );
testmap["First"] = templist;
for ( auto first = testmap["First"].begin(); first != testmap["First"].end(); ++first ) std::cout << *first << ' ';
std::cout << 'n';
testmap["First"].push_front( 0 );
for ( auto first = testmap["First"].begin(); first != testmap["First"].end(); ++first ) std::cout << *first << ' ';
std::cout << 'n';
}
程序输出为
5 10
0 5 10
您可以根据需要使用带有列表作为值的无序列图。
例如,对于此类定义:
std::unordered_map <string, list<int> > testmap;
list<int> templist;
您可以:
- 替换或创建整个列表值:
testmap["First"] = templist;
- 打印一些列表项
std::cout << (*testmap["First"].begin()) << endl;
- 或打印所有项目
for (auto v : testmap["First"])
std::cout << v << "n";
- 替换某些列表值
std::replace(testmap["First"].begin(), testmap["First"].end(), 20, 99)
相关文章:
- 如何使用set实现无序数据结构?
- gtest 期望无序元素与自定义比较器/匹配器一起使用
- 使用无序映射在STL中存储键值对
- 使用无序映射进行错误索引
- 构建大型无序集,并在开始时使用所有可用数据
- 使用 TBB 插入到无序提升双图中
- C++:使用一对(cpp_int,int)整数作为无序映射中的键(其中cpp_int是boost多精度整数)
- 设置要与无序集合一起使用的自定义类 - 在集合中找不到元素
- 使用插入C 后,将订单保持在无序集中
- 从无序地图创建以自定义类作为键的地图.但是,由于const而无法使用的要素
- 无序地图 - 使用const键获取值
- 在无序映射<字符串上使用 find(),向量<string>>与 C++ 中的有序映射花费相同的时间
- 提升库,使用 C++ 进行无序设置让我头疼
- 使用shared_ptr<字符串>转换为一个无序集合<字符串>
- 使用std :: String键在共享内存中升级无序地图
- 在使用无序多映射实现的有向图中查找循环
- 我可以在 C++ 中使用无序函数参数吗?
- 如何使用一个整数数组作为一个无序映射的键
- 使用 LLVM 的 libc++ 时,__1 符号从何而来?
- 使用无序遍历从相同大小的排序数组填充现有 BST