【发布时间】:2016-09-12 17:09:04
【问题描述】:
data *c=it; 出现错误。我只需要检索一个值。
class X
{
string value4;
vector<data> *T1;
}
class data
{
string value1;
int value2;
}
void doTask(X V1)
{
vector<data> *tempdata=V1.getData();
for (std::vector<data>::iterator it = tempdata->begin() ; it !=tempdata->end(); ++it)
{
data *c=it;
sendData(value3,c);
}
}
void sendData(string s,data d)
{
}
我收到此错误:
错误:无法转换 'std::vector::iterator {aka __gnu_cxx::__normal_iterator >}' 到 'data*' 在初始化
我是这个矢量用法的新手。有人可以帮我吗?
【问题讨论】:
-
为什么你认为
std::vector::iterator可以分配给data*? -
向量不存储指向
data的指针而是实例,因此将c这样的变量设为指针是没有意义的。 -
–1 这不是真正的代码。例如,没有分号的类定义将无法编译。
-
投票结束,因为缺乏可重复的例子。
-
另外,拥有一个指向向量的指针通常也没有多大意义。 C++ 发展得越多,需要的指针就越少。
标签: c++ loops object vector iterator