【问题标题】:const and STL containersconst 和 STL 容器
【发布时间】:2011-04-13 00:17:35
【问题描述】:

以下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;

}

【问题讨论】:

    标签: c++ templates vector stl


    【解决方案1】:

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

    const 阻止它成为assignable。删除const 并再次尝试编译您的代码。

    还将std::vector&lt;double&gt; VectDouble::iterator 更改为

    std::vector&lt;double&gt;::iterator

    【讨论】:

      【解决方案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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-28
        • 1970-01-01
        • 2013-04-16
        • 1970-01-01
        • 2011-03-22
        相关资源
        最近更新 更多