【发布时间】:2016-08-17 23:50:49
【问题描述】:
我有一些东西,firstname_list 是指针的向量(数据类型字符串)。所以它看起来像vector <string*> firstname_list;。在其中,存储了字符串的地址。如果我尝试做这样的事情:
cout << *(firstname_list[0]);
它会取消引用地址并给我我需要的字符串。
但是,我尝试使用我在本网站上读到的迭代器创建一个循环,我尝试了这个:
vector<string*>::iterator iter;
for (iter = firstname_list.begin(); iter != firstname_list.end(); ++iter)
cout << *(firstname_array[iter]);
但是,现在它不打印而是报错:
error C2679: binary '[' : no operator found which takes a right-hand operand of type
'std::_Vector_iterator<std::_Vector_val<std::_Simple_types<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char>> *>>>' (or there is no acceptable conversion)
我查看了与此类似的其他线程,其中人们询问如何迭代循环,但我仍然无法弄清楚。对于我收到此消息的原因的任何帮助,我们将不胜感激!
【问题讨论】:
-
就
cout << *iter。 -
firstname_list,firstname_array什么??请保持一致。 -
cout
-
我很好奇你为什么需要
vector<string*>而不是vector<string>。
标签: c++