2010-09-16 22 views
6

Poniższy kod std::vector daje błędomconst i STL pojemniki

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; 

} 

Odpowiedz

13

swoje STL elementy powinny być przypisane do kontenerów i kopia constructible.

const zapobiega jego byciu assignable. Usuń const i spróbuj ponownie skompilować kod.

zmienić także std::vector<double> VectDouble::iterator do

std::vector<double>::iterator

2

VectDouble to nazwa zmiennej.

zmiana

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

do

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

lub

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