gpt4 book ai didi

c++:遍历一组 vector

转载 作者:太空狗 更新时间:2023-10-29 23:53:09 27 4
gpt4 key购买 nike

我试图从一组 vector 中打印出每个 vector 中的所有元素。构建失败但错误发生在头文件中的某处,恐怕我根本不理解错误代码。任何帮助将不胜感激!这是错误:

error: invalid conversion from 'const std::basic_string<char, std::char_traits<char>, std::allocator<char> >* const' to 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >*'

这是导致问题的代码。

multiset<vector < string > > setOfRules;
vector<string> testing,testing2;

testing.push_back("bar");
testing.push_back("foo");
testing2.push_back("foo2");
testing2.push_back("bar2");
setOfRules.insert(testing);
setOfRules.insert(testing2);

for (multiset< vector <string > >::iterator myIterator = setOfRules.begin();
myIterator!=setOfRules.end();
++myIterator)
{

for (vector< string >::iterator myOtherIterator = ( *myIterator ).begin();
myOtherIterator != ( *myIterator ).end();
++myOtherIterator)
{
cout << *myOtherIterator << " " ;
}
cout << endl;
}

最佳答案

C++11 标准声明对于值类型与键类型相同的关联容器,iterator 和 const_iterator 都是常量迭代器.

所以实际上 multiset<vector<string>>::iteratorconst_iterator . std::set 同样的把戏迭代器 - 它们都是常量。

这意味着vector<string>::iterator myOtherIterator = *myIterator.begin()语句将失败,因为您尝试从 const 对象(由 *myIterator 给出,即 const )获取 non-const 迭代器。

要修复你需要使用 vector<string>::const_iterator :

for(multiset<vector<string>>::const_iterator myIterator = setOfRules.begin(); 
myIterator != setOfRules.end(); ++myIterator)
{
for(vector<string>::const_iterator myOtherIterator = *myIterator.begin();
myOtherIterator != *myIterator.end(); ++myOtherIterator)
{
cout << *myOtherIterator << " ";
}
cout << endl;
}

关于c++:遍历一组 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12358590/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com