PDA

View Full Version : [C++]Problema con iteratore STL


Kleidemos
10-04-2003, 10:46
Ho questo cod:

#include <vector>
#include <iostream>

using namespace std;

int main()
{
vector<int> vet(5, 1);
vector<int>::iterator beg = vet.begin(), end = vet.end();
for(beg;beg != end;beg++)
{
cout << vet[beg] <<endl;
}
return 0;
}


Ma mi da:

Compilatore: C++ Optimized Maximum
Esecuzione di g++.exe...
g++.exe "C:\Documents and Settings\Admin\Desktop\tt.cpp" -o "C:\Documents and Settings\Admin\Desktop\tt.exe" -fexpensive-optimizations -O2 -I"C:\Dev-Cpp\include\c++" -I"C:\Dev-Cpp\include\c++\mingw32" -I"C:\Dev-Cpp\include\c++\backward" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:/Documents and Settings/Admin/Desktop/tt.cpp: In function `int main()':
C:/Documents and Settings/Admin/Desktop/tt.cpp:12: no match for `
std::vector<int, std::allocator<int> >& [__gnu_cxx::__normal_iterator<int*,
std::vector<int, std::allocator<int> > >&]' operator
C:/Dev-Cpp/include/c++/bits/stl_vector.h:289: candidates are: _Tp&
std::vector<_Tp, _Alloc>::operator[](unsigned int) [with _Tp = int, _Alloc =
std::allocator<int>]
C:/Dev-Cpp/include/c++/bits/stl_vector.h:300: const _Tp&
std::vector<_Tp, _Alloc>::operator[](unsigned int) const [with _Tp = int,
_Alloc = std::allocator<int>]

Esecuzione terminata



Why??
Cosa sbaglio nel'iterare voctor?

cionci
10-04-2003, 11:01
#include <vector>
#include <iostream>

using namespace std;

int main()
{
vector<int> vet(5, 1);
vector<int>::iterator beg = vet.begin(), end = vet.end();
for(/*beg*/;beg != end;beg++) //beg lì non serve a niente
{
cout << *beg <<endl;
}
return 0;
}

beg è un iteratore (come se fosse un puntatore) di conseguenza se vuoi stampare l'elemento puntato da beg devi fare in questo modo...

Kleidemos
10-04-2003, 11:04
hai ragione!
NN avevo visto il simbolo di deferenzazione !
Cmq il Lippman è mitico!