funkcja wkładająca dane do wektora z pętlą for
Ostatnio zmodyfikowano 2015-10-10 23:40
Asahel Temat założony przez niniejszego użytkownika |
funkcja wkładająca dane do wektora z pętlą for » 2015-10-10 18:36:27 Witam :) w swoim programie często wykorzystuję operację wczytywania danych do wektora, którego rozmiar definiuję w czasie wczytywania programu. Kompilator wywala mi takie ostrzeżenie: ||=== Build: Debug in c (compiler: GNU GCC Compiler) ===| C:\Users\Asahel\Documents\c\main.cpp||In function 'void wczytaj(std::vector<int>&)':| C:\Users\Asahel\Documents\c\main.cpp|27|warning: comparison between signed and unsigned integer expressions [-Wsign-compare]| ||=== Build finished: 0 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===| Dlaczego? :( #include <iostream> #include <vector>
using namespace std;
void wczytaj( vector < int > & b );
int main() { int wielkosc_wektora; cin >> wielkosc_wektora; vector < int > v( wielkosc_wektora ); wczytaj( v ); for( int i = 0; i < wielkosc_wektora; i++ ) { cout << v[ i ] << endl; } }
void wczytaj( vector < int > & b ) { for( int i = 0; i < b.size(); i++ ) { int liczba; cin >> liczba; b[ i ] = liczba; } }
[ \c pp ] |
|
Szadziu |
» 2015-10-10 18:39:13 b.size() zwraca unsigned int
|
|
carlosmay |
» 2015-10-10 20:37:49 void wczytaj( vector < int > & b ) { vector < int >::iterator it_end = b.end(); for( vector < int >::iterator it = b.begin(); it != it_end; it++ ) cin >> * it; }
Jeśli często korzystasz z vectora warto przyswajać iteratory. for( int i = 0; i < wielkosc_wektora; i++ ) { cout << v[ i ] << endl; }
|
a to możesz zamienić na for( int element: v ) cout << element << endl;
|
|
mateczek |
» 2015-10-10 23:40:37 for( int & element: v ) cin >> element;
int element; while( cin >> element; ) { v.push_back( element ) }
|
|
« 1 » |