将值返回到函数的向量

时间:2017-01-10 21:21:49

标签: c++ vector

我是一个全新手!我正在编写一个使用单独文件的程序。在主文件中,Ive创建了一个向量来存储来自结构的信息,该结构放在一个单独的头中。我在一个单独的文件中构造了一个函数来从结构中添加对象。我的问题是我无法弄清楚如何将对象从我的函数返回到主文件中的向量。请原谅我糟糕的拼写!

这是主文件中的向量,但在main()之前:
vector<Person> persons;

这是我的职责:

vector <Person> add(vector <Person> persons)
{
        cin.get();
        Person tmpPerson;
        cout << endl;
        cout << "Add user information!" << endl;
        cout << "Firstname: ";
        getline(cin, tmpPerson.firstName);

        cout << "Lastname: ";
        getline(cin, tmpPerson.lastName);

        cout << "Weight in kg (x.x): ";
        cin >> tmpPerson.weigth;        
       //cin.get(); 

    persons.push_back(tmpPerson);

1 个答案:

答案 0 :(得分:2)

没有必要这样做。只需通过引用将向量传递给函数:

void add(vector<Person>& persons) {
  ....
  persons.push_back(tmpPerson);
}

persons向量将传递给函数by reference,这意味着您将实际处理原始副本。