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

funkcja wkładająca dane do wektora z pętlą for

Ostatnio zmodyfikowano 2015-10-10 23:40
Autor Wiadomość
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? :(

C/C++
#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 );
   
    //wypisujemy to co wpisalismy do wektora
   
    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 ]
P-138366
Szadziu
» 2015-10-10 18:39:13
b.size() zwraca unsigned int
P-138367
carlosmay
» 2015-10-10 20:37:49
C/C++
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.

C/C++
for( int i = 0; i < wielkosc_wektora; i++ )
{
    cout << v[ i ] << endl;
}
 
a to możesz zamienić na
C/C++
for( int element: v )
     cout << element << endl; // C++11


P-138371
mateczek
» 2015-10-10 23:40:37
C/C++
for( int & element: v )
     cin >> element; // C++11 chyba da się pisać jak referencja ale na 100% nie wiem;

//przy nieznajej liczbie elementów robię tak
int element;
while( cin >> element; ) {
    v.push_back( element )
}
P-138383
« 1 »
  Strona 1 z 1