Quanto segue è un programma C++ che utilizza il contenitore vettoriale STL. Volevo solo sapere perché la funzione display() non sta stampando i contenuti vettoriali sullo schermo. Se la visualizzazione della linea size() è commentata, la funzione display() funziona correttamente.Visualizzazione del contenuto di un contenitore vettoriale in C++
#include <iostream>
#include <vector>
using namespace std;
void display(vector<int> &v)
{
for(int i = 0; i < v.size(); i++)
{
cout << v[i] << " ";
}
cout << "\n" << endl;
}
int main()
{
vector<int> v;
cout << "Size of Vector=" << v.size() << endl;
//Putting values into the vector
int x;
cout << "Enter five integer values" << endl;
for(int i; i<5; i++)
{
cin >> x;
v.push_back(x);
}
//Size after adding values
cout << "Size of Vector=" << v.size() << endl;
//Display the contents of vector
display(v);
v.push_back(6);
//Size after adding values
cout << "Size of Vector=" << v.size() << endl;
//Display the contents of vector
display(v);
}
uscita:
Size of Vector=0
Enter five integer values
1
2
3
4
5
Size of Vector=5
Size of Vector=6
inizializzare le variabili! 'int i = 0' – YXD
Quando si scorreva il vettore da visualizzare, si voleva chiaramente fermarsi alla fine. Ma dove volevi * iniziare *? :) (PS che abilita tutti gli avvisi nel compilatore potrebbe aver rilevato questo errore per te) – Hurkyl
Devi davvero inizializzare le tue variabili iteratore ala 'int i = 0;' È molto pericoloso presumere che C++ ti abbia fatto un favore e inizializzato loro a '0'. – Josh