"no match for 'operator<<"
Ostatnio zmodyfikowano 2014-04-22 11:37
IFeel3 Temat założony przez niniejszego użytkownika |
"no match for 'operator<<" » 2014-04-20 21:22:18 Witam. Tak wygląda kod źródłowy, który próbuję skompilować: #include <iostream> #include <vector>
int main() { typedef std::vector < int > intT; intT wektor; int x = 0; for( int i = 0; i < 10; i++ ) { wektor.push_back( x ); x += 7; std::cout << wektor[ i ] << "\n"; } for( intT::const_iterator i = wektor.begin(); i != wektor.end(); i++ ) { std::cout << i << "\n"; } return 0; }
Kompilator zaś informuje: -------------- Build: Debug in wektory (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -Wall -fexceptions -g -DSFML_STATIC -I"C:\...\SFML-2.1\include" -c "C:\...\wektory\main.cpp" -o obj\Debug\main.o C:\...\wektory\main.cpp: In function 'int main()': C:\...\wektory\main.cpp:20:18: error: no match for 'operator<<' in 'std::cout << i' C:\...\wektory\main.cpp:20:18: note: candidates are: In file included from c:\program files\codeblocks\mingw\bin\../lib/gcc/mingw32/4.7.1/include/c++/iostream:40:0,
Cały log jest jednak bardzo długi, dlatego wklejam tylko początek. Nie wiem też jaki może mieć z tym związek biblioteka SFML którą niedawno zainstalowałem, a związek taki sugeruje ten tekst. |
|
MrPoxipol |
» 2014-04-20 23:51:12 Aby wypisać indeksy możesz również tak: for( std::size_t i = 0; i < wektor.size(); ++i ) { std::cout << i << std::endl; } Jednak jeśli potrzebujesz użyć iteratora, a chcesz znać indeks musisz wyliczyć go przy pomocy std::distance(): for( auto it = wektor.begin(); it != wektor.end(); ++it ) { std::cout << std::distance( wektor.begin(), it ) << std::endl; } /edit: Ano fakt :P (Przesadziłem :P). |
|
maly |
» 2014-04-22 08:50:16 std::cout << * i << "\n"; |
|
IFeel3 Temat założony przez niniejszego użytkownika |
» 2014-04-22 11:37:02 Dziękuję Wam, to wystarczy. |
|
« 1 » |