C++ 如何访问向量元素,其中向量映射为字符';键';在无序的地图上?
我有一个无序的_图,其中键是字符,值是向量:C++ 如何访问向量元素,其中向量映射为字符';键';在无序的地图上?,c++,c++11,vector,stl,unordered-map,C++,C++11,Vector,Stl,Unordered Map,我有一个无序的_图,其中键是字符,值是向量: 无序映射表 我正在尝试打印键及其值: for(unordered_map<char,vector<int> > ::const_iterator iter = table.begin(); iter != table.end(); ++iter) { cout<<iter->first<< "\t"; for(vector<int> :: const_iterator
无序映射表代码>
我正在尝试打印键及其值:
for(unordered_map<char,vector<int> > ::const_iterator iter = table.begin(); iter != table.end(); ++iter)
{
cout<<iter->first<< "\t";
for(vector<int> :: const_iterator iter1 = iter->second.begin(); iter1 != iter->second.end(); ++iter1)
{
cout<<(iter->second)[iter1];
}
cout<<"\n";
}
for(无序映射::常量迭代器iter=table.begin();iter!=table.end();++iter)
{
coutsecond.end();++iter1)
{
cout运算符[]
需要类型为std::vector::size\u type
的参数,因此不能使用迭代器作为其参数。可以将循环更改为:
for (vector<int>::size_type i = 0; i < iter->second.size(); i++)
{
cout<<(iter->second)[i];
}
for(vector::size_type i=0;isecond.size();i++)
{
cout要从迭代器中获取值,只需使用*
解除对它的引用,就像使用指针一样。但是这里显式使用迭代器没有意义。只需使用基于范围的for循环即可
for(const auto& p : table)
{
cout << p.first << "\t";
for(const auto& i : p.second)
{
cout << i;
}
cout<<"\n";
}
for(const auto&p:table)
{
cout您可以如下更新代码以打印所有值
for(auto iter = table.begin(); iter != table.end(); ++iter)
{
cout<<iter->first<< "\t";
for(auto iter1 = iter->second.begin(); iter1 != iter->second.end(); ++iter1)
{
cout<<*iter1;
}
cout<<"\n";
}
for(自动iter=table.begin();iter!=table.end();++iter)
{
coutsecond.end();++iter1)
{
当您需要执行比“对范围内的每个元素执行X”更复杂的操作时,我们应该何时使用迭代器?@DharitParikh。
for(auto iter = table.begin(); iter != table.end(); ++iter)
{
cout<<iter->first<< "\t";
for(auto iter1 = iter->second.begin(); iter1 != iter->second.end(); ++iter1)
{
cout<<*iter1;
}
cout<<"\n";
}