-6

我收到以下代码错误,请让我知道我做错了什么。谢谢你。Kelly 我不确定我在 buildVectorS 函数上做错了什么。请让我知道出了什么问题

单击“编译并运行”后-> 弹出框输入名称:-> 输入名称 Adams 之后,我看到出现带有以下注释的小框

untitled12.exe 已停止工作 一个问题导致程序停止正常工作。windows 将关闭程序并通知您是否有可用的解决方案"`

Enter names:
adams

Thank you.

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

void buildVectorS(vector<string> &vect, int numItems){
     cout << "Enter names : " << endl;
     string tmp;
     for(int i = 0; i <=numItems; i++)
        cin >> tmp; 
        vect.push_back(tmp);

      //for(int i = 0; i <= numItems; i++)
      //   vect.push_back(vect[i]);   
}

void displayVectorS(vector<string> vect){
  for(int i = 0; i <vect.size(); i++)
     cout << vect[i] << " " <<endl;
}

int main(){   
    vector<string> names; 
    buildVectorS(names,5);
    displayVectorS(names);
    cout << endl;

    sort(names.begin(), names.end());
    displayVectorS(names);
    cout << endl;  

   system("PAUSE");
   return 0;
}
4

1 回答 1

1

您有一个名为 names 的向量,然后尝试传入什么都不是的数字。

int main(){
    vector<string> names; 
    buildVectorS(numbers,10)

    ..........

将所有数字更改为名称。

现在您已经编辑了这个代码似乎可以工作的问题。

void buildVectorS(vector<string> &vect, int numItems){
    cout << "Enter names : " << endl;
    string tmp;
    for(int i = 0; i <=numItems; i++){
       cin >> tmp;
       vect.push_back(tmp);
    }
}
于 2013-08-13T17:15:11.873 回答