2017-08-21 6 views
0

J'essaie de créer un programme impliquant des vecteurs, mais il semble que les vecteurs ne fonctionnent pas du tout. Voici à quoi ressemble mon programme:La déclaration d'un vecteur en C++ génère une erreur d'exécution

#include <vector> 
#include <iostream> 
using namespace std; 

int main() 
{ 
    vector <int> vec(7); //This is what throws the error 
    cout << "First: " << vec.at(0) << endl; 
    cout << "Last: " << vec.back() << endl; 
    vec.push_back(296); 
    cout << "New last: " << vec.back() << endl; 
    cout << "Size: " << vec.size() << endl; 
    return 0; 
} 

J'utilise GCC pour compiler. La compilation ne jette aucune erreur, mais elle se bloque chaque fois que je l'exécute. Ceci est l'erreur que je reçois:

The procedure entry point_gxx_personality_v0 could not be located in the dynamic link library C:\[...]\Vectors.exe. 

J'ai installé le compilateur et les bibliothèques via MinGW et je suis d'apprendre la langue de C++ Programmation quatrième édition par Mike McGrath.

Image:

(image)

+0

Votre installation du compilateur C++ est interrompue. Quel que soit le problème, vous devrez vous débrouiller seul. Cela n'a rien à voir avec des vecteurs, ou quoi que ce soit en relation avec C++, mais avec votre installation de compilateur spécifique. –

+2

Votre compilateur ne se plaint pas de 'thing'? Je suppose que vous ne nous montrez pas votre vrai code. – Beta

+0

Merci d'avoir signalé cela; J'ai décidé au hasard d'utiliser l'outil de recherche/remplacement pour changer 'thing' en 'vec' dans mon code source et l'ai changé manuellement dans la question, mais j'ai négligé cette affirmation. – Turnovus

Répondre

0

S'il vous plaît voir le http://en.cppreference.com/w/cpp/container/vector. En utilisant vector, vous devez définir comme ceci. Essayez-le et il n'y aura pas d'erreur. En outre, vous devez d'abord appeler les fonctions push_back, puis appeler vec.at() ou vec.back(). Dans votre exemple, il n'y a pas de données dans le vecteur, donc il y aura une erreur fatale.

#include <vector> 
    #include <iostream> 
    using namespace std; 

     int main() 
     { 
      vector <int> vec; 
      vec.push_back(296); 
      vec.push_back(334); 

      cout << "First: " << vec.at(0) << endl; 
      cout << "Last: " << vec.back() << endl; 

      cout << "New last: " << vec.back() << endl; 
      cout << "Size: " << vec.size() << endl; 
      return 0; 
     }