我收到以下编译错误:
在'['标记向量
之前预期的非限定标识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]
答案 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
代替。再次,我不确定矢量模板有一个称为大小的字段。这是我猜的一个属性。