结构的c ++向量,为什么我不能使用vector.at(i)或vector [i]进行结构化?

时间:2013-07-19 00:46:10

标签: c++ vector struct compiler-errors

struct info{
  int num;
  int weight;
};
vector<info> nbr;

上面的声明是全局的,我的函数中有一个看起来像这样的循环

for(int i=0;i<nbr.size();i++){
  info i = nbr.at(i);
  vector<int> v;
  v.push_back(i.weight);
  tb[i.num] = v;
}

info i = nbr.at(i)给了我错误:没有匹配函数来调用'std::vector<info, std::allocator<info> >::at(info&)'

为什么呢?我做错了什么?

1 个答案:

答案 0 :(得分:4)

for(int i=0;i<nbr.size();i++){
    info i = nbr.at(i);

这就是原因。 您正在重新定义i所指的内容 这是你的循环索引int iinfo i,你的编译器想知道为什么你将info&传递给vector::at

更改名称,你应该好好去。