无序列图未打印所有存储桶值
unordered map not printing all bucket values
#include <string>
#include <iostream>
#include <unordered_map>
using namespace std;
typedef unordered_map<string, string> wordMap;
int main ()
{
wordMap mymap;
mymap.insert(make_pair("Australia","Canberra"));
mymap.insert(make_pair("U.S.","Washington"));
mymap.insert(make_pair("U.S.","New York"));
mymap.insert(make_pair("U.S.","Kansas"));
mymap.insert(make_pair("France","Paris"));
cout << "mymap contains:";
for ( auto it = mymap.begin(); it != mymap.end(); ++it )
{
cout << " " << it->first << ":" << it->second;
cout << endl;
}
cout << "mymap's buckets contain:n";
for ( unsigned i = 0; i < mymap.bucket_count(); i++)
{
cout << "bucket #" << i << " contains:" << endl;
for ( auto local_it = mymap.begin(i); local_it != mymap.end(i); local_it++ )
{
cout << " " << local_it->first << ":" << local_it->second;
cout << endl;
}
}
int x;
cin >> x;
return 0;
}
输出:
mymap contains: Australia:Canberra U.S.:Washington France:Paris
mymap's buckets contain:
bucket #0 contains:
bucket #1 contains:
bucket #2 contains:
bucket #3 contains:
bucket #4 contains: France:Paris
bucket #5 contains: Australia:Canberra
bucket #6 contains:
bucket #7 contains: U.S.:Washington
为什么其他"美国"州没有出现?
我是 c++ 的新手,所以如果不是太难,也请解释任何"newby"部分。这个例子直接取自 cplusplus.com(http://www.cplusplus.com/reference/unordered_map/unordered_map/begin/),但进行了一些修改,因为我的c ++版本似乎不匹配。
std::unordered_map
每个键只能包含一个。你想要std::unordered_multimap
.
std::unordered_map
只能有唯一的键,因此您的问题在数据结构部分存在问题。您可以采取list<pair<string,string>>
相关文章:
- 打印逐行存储的文本文件
- 按字母顺序打印存储在字符数组中的信息
- 存储和打印字符,但输出不是预期的
- 如何在循环中使用scanf,将值存储到一个变量中,然后打印出来?
- 在控制台中以C++打印(并存储)高 ASCII 字符 (╔)
- C++无法将对齐的字符串存储在字符串变量中并打印出来
- 逐个字母存储字符串并打印
- 使用BFS存储和打印最短路径
- 尝试读取数据文件,存储在数组中并打印所有元素,但它不起作用
- 为什么 al_draw_textf() 打印数字而不是存储在字符串变量中的字母
- 如何在C 中获取,存储和打印非英语字符串
- 为什么使用预留分配存储后不能迭代和打印矢量的内容?
- 将多个整数存储到数组中并打印出来
- 如何将用户输入的 5 个整数存储在数组中并打印出整个数组
- 一系列指针存储地址并以后打印
- 从数组中提取元音,并在另一个数组中存储ND打印
- 如何打印存储在数组中的值
- 如何将多个值存储到一个数组中以供以后打印
- 如何在程序本身中打印存储在 char[] 或字符串中的值
- 如何存储变量的地址并使用指针打印值