2010-09-16 78 views
6

以下std::vector代碼是給錯誤常量和STL容器

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; 

} 

回答

13

你的STL容器中的元素應該是分配和拷貝構造。

const阻止它成爲assignable。刪除const並嘗試再次編譯您的代碼。

另外改變std::vector<double> VectDouble::iterator

std::vector<double>::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)