2016-11-12 2 views
0

Hier ist der Fehler, den ich bekomme: Exercise11.cxx: 29: 13: Fehler: ungültige Operanden zu binären Ausdruck ('ostream' (aka 'basic_ostream') und 'vector') Fehlermeldung/Vektor der Benutzereingabenummern

#include <iostream> 
#include <vector> 
#include <iomanip> 

using namespace std; 
int main() 
{ 
    cout << "Kaitlin Stevers" << endl; 
    cout << "Exercise 11 - Vectors" << endl; 
    cout << "November 12, 2016" <<endl; 
    cout << endl; 
    cout << endl; 
    int size; 
    cout << " How many numbers would you like the vector to hold? " << endl; 
    cin >> size; 
    vector<int> numbers; 
    int bnumbers; 

    for (int count = 0; count < size; count++) 
    { 
     cout << "Enter a number: " << endl; 
     cin >> bnumbers; 
     numbers.push_back(bnumbers); 
    } 
    //display the numbers stored in order 
    cout << "The numbers in order are: " << endl; 
    for(int i=0; i < size; i++) 
    { 
     cout<<numbers[i]<< " "; 
    } 
    cout << endl; 
    return 0; 
} 

der Fehler kommt auf den Teil des Codes auf, die sagt:

cout << numbers << endl; 

Zweite Frage:

Wie verwende ich vent.reverse(); um den Vektor umzukehren und ihn dann anzuzeigen.

Antwort

1

Sie haben eine Schleife verwenden, um den Vektor zu drucken:

for(int i=0; i < size; i++){ 
    cout<<numbers[i]<< " "; 
} 
+0

Perfekt. Danke, das hat funktioniert! –

1

Der Fehler sagt Ihnen alles, was Sie wissen müssen: operator<< ist nicht zwischen std::cout und std::vector definiert.

Die Linie, die dieses ...

cout << numbers << endl; 

... weil cout ist ein vector ein ostream und numbers ist nicht ist. Here's a list of supported types that can be streamed into ostream.


Betrachten wir eine for-Schleife aus dem Inhalt von numbers drucken:

cout << "The numbers in order are: " << endl; 

for(const auto& x : numbers) 
{ 
    cout << x << " "; 
} 

cout << endl; 

Wenn Sie Zugriff auf C++ 11 Funktionen nicht haben, in Erwägung ziehen, sie und die Aktualisierung der Erforschung Dein Compiler. Der folgende Code, wenn C++ 03-konform:

cout << "The numbers in order are: " << endl; 

for(std::size_t i = 0; i < numbers.size(); ++i) 
{ 
    cout << numbers[i] << " "; 
} 

cout << endl; 
+0

Was ist 'const Auto &'? –

+1

Schauen Sie in ['auto'] (http://en.cppreference.com/w/cpp/language/auto) und [Bereich' for'] (http://en.cppreference.com/w/cpp/language)/Bereich-für). Sie sind beide C++ 11 Funktionen. –

+0

Ich habe diesen Code und habe den Fehler: Exercise11.cxx: 27: 15: Warnung: 'Auto' Typ Spezifizierer ist eine C++ 11 Erweiterung [-WC++ 11-Erweiterungen] –

1

können Sie nicht cout << numbers nennen, weil es keine definierte Art und Weise zur Ausgabe eines Vektors ist. Wenn Sie die Daten in einem Vektor ausdrucken möchten, müssen Sie jedes Element einzeln durchlaufen und drucken. Weitere Informationen finden Sie How to print out the contents of a vector?

1

andere Art und Weise unter Verwendung von C++ 11 Funktionen

for (auto it = numbers.begin(); it < numbers.end(); it ++) 
    cout << (*it) << "\t"; 
Verwandte Themen