我試圖從多向量集合中打印出每個向量中的所有元素。構建失敗,但錯誤發生在頭文件的某處,恐怕我根本不瞭解錯誤代碼。任何幫助將不勝感激!這是錯誤:C++:遍歷多個向量的集合
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;
}
我沒有看到你加入'testing'和'testing2'到'setOfRules'。 –
同意。此代碼中的'setOfRules'爲空。 – japreiss
迭代'multiset'需要你使用'const_iterator'。否則,您可能會嘗試在迭代過程中更改該集合的「鍵」,這會破壞集合中的排序。 –