C++ 打印C++;迭代映射

C++ 打印C++;迭代映射,c++,maps,iteration,C++,Maps,Iteration,有没有更简单的方法来解决这个问题,或者我有什么做错了?我认为我的问题的核心在于代码 vector<int> &v = miss_words[*i]; vector&v=miss_words[*i]; 但也许我只是把整个概念搞错了。有什么建议吗 代码: void print\u map(map miss\u words)//打印出字典集 { map::iterator it=miss_words.begin();//创建一个迭代器 while(it!=miss_words.

有没有更简单的方法来解决这个问题,或者我有什么做错了?我认为我的问题的核心在于代码

vector<int> &v = miss_words[*i];
vector&v=miss_words[*i];
但也许我只是把整个概念搞错了。有什么建议吗

代码:

void print\u map(map miss\u words)//打印出字典集
{
map::iterator it=miss_words.begin();//创建一个迭代器
while(it!=miss_words.end())//while还没到结尾
{
vector&v=miss_words[*it];//访问地图中的向量

对于(unsigned int g=0;g您想说
vector&v=it->second;

迭代器的值类型是映射的值类型,即
pair


实际上,在现代C++中,你可以写得更简单,而且更少出错,比如:

for (auto const & p : miss_words)
{ 
    for (auto const & x : p.second)
    {
        cout << x << ": " << x << " \n";
    }
}
for(自动const&p:miss_words)
{ 
用于(自动常数和x:p.second)
{

你想说的是
vector&v=it->second;

迭代器的值类型是映射的值类型,即
pair


实际上,在现代C++中,你可以写得更简单,而且更少出错,比如:

for (auto const & p : miss_words)
{ 
    for (auto const & x : p.second)
    {
        cout << x << ": " << x << " \n";
    }
}
for(自动const&p:miss_words)
{ 
用于(自动常数和x:p.second)
{

你的
权利…后来出错了…谢谢你的帮助!!!@kerreksb
你的权利…后来出错了…谢谢你的帮助!!!@kerreksb谢谢!我不知道“第二个”notation@wawiti:我很高兴它有帮助,但请注意它不是“符号”.
second
只是
对的一个成员
类型…谢谢!我不知道“second”是什么notation@wawiti:我很高兴它有帮助,但请注意它不是“符号”。
second
只是
对的一个成员。。。