const和STL容器

时间:2010-09-16 03:06:24

标签: c++ templates vector stl

以下std::vector代码出错

int main()
{
    std::vector<const double> VectDouble;
    VectDouble.push_back(2.34);
    VectDouble.push_back(2.33);
    VectDouble.push_back(2.32);

    for(std::vector<const double> VectDouble::iterator i=VectDouble.begin();i!=VectDouble.end();++i)
       std::cout<<*i;

}

2 个答案:

答案 0 :(得分:13)

您的STL容器元素应该是可分配的和可复制构造的。

const阻止其成为assignable。删除const并尝试重新编译代码。

同时将std::vector<double> VectDouble::iterator更改为

std::vector<double>::iterator

答案 1 :(得分:2)

VectDouble是一个变量名。

更改

for(std::vector<const double> VectDouble::iterator i=VectDouble.begin();i!=VectDouble.end();++i)

for(std::vector<const double>::iterator i=VectDouble.begin();i!=VectDouble.end();++i)

typedef  std::vector<const double> vector_t;
for(vector_t::iterator i=VectDouble.begin();i!=VectDouble.end();++i)