在'['标记向量之前预期的unqualified-id

时间:2014-05-13 01:43:36

标签: c++

我收到以下编译错误:

在'['标记向量

之前预期的非限定标识
const std::vector<double>* t_vector = &my->thresholds;

if(t_vector.size >= 10)
{
  std::cout << t_vector->[i];
}

错误发生在std :: cout语句

我也尝试了以下内容:

std::cout << t_vector[i]
std::cout << *t_vector[i]

2 个答案:

答案 0 :(得分:1)

threshold_vector->[i]语法根本不存在。

您打算取消引用threshold_vector

*threshold_vector

然后在结果上调用[]运算符;为此,您需要使用括号:

(*threshold_vector)[i]

->语法仅适用于函数调用(形式为obj->foo()obj->operator[](i)!),而不是中缀/前缀/后缀运算符,因为它们的各种复杂性语言的语法。

同样,请写threshold_vector->size()而不是threshold_vector.size

另外,希望您的意思是std::vector<double>而不是std::double<vector>?!

答案 1 :(得分:0)

除了上面提到的错误之外,您必须注意,由于threshold_vector被声明为指针,因此您可能会遇到问题编译if(threshold_vector.size >= 10)

使用threshold_vector->size代替。再次,我不确定矢量模板有一个称为大小的字段。这是我猜的一个属性。