Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

"no match for 'operator<<"

Ostatnio zmodyfikowano 2014-04-22 11:37
Autor Wiadomość
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ć:

C/C++
#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"; // tutaj blad
    }
   
    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.
P-108442
MrPoxipol
» 2014-04-20 23:51:12
Aby wypisać indeksy możesz również tak:
C/C++
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():
C/C++
for( auto it = wektor.begin(); it != wektor.end(); ++it ) {
    // std::cout << std::distance <std::vector <int>::const_iterator>(wektor.begin(), it) << std::endl; dla const iteratora
    std::cout << std::distance( wektor.begin(), it ) << std::endl;
}

/edit:
Ano fakt :P (Przesadziłem :P).
P-108446
maly
» 2014-04-22 08:50:16
std::cout << * i << "\n";
P-108493
IFeel3
Temat założony przez niniejszego użytkownika
» 2014-04-22 11:37:02
Dziękuję Wam, to wystarczy.
P-108499
« 1 »
  Strona 1 z 1