gpt4 book ai didi

c++ - 从人 vector 插入和读取文件时出错

转载 作者:行者123 更新时间:2023-12-01 14:52:39 24 4
gpt4 key购买 nike

我创建了一个带有实例变量名称和年龄的人员类。然后我创建了一个人 vector 来存储人。我写了两个函数来插入和打印 vector 中的人。但我收到一条错误消息:

error: no matching function for call to 'std::vector<person*>::push_back(person&)'
arr.push_back(p1);

下面是我的代码。
vector<person*> arr;

void addPersons(person p1) {
arr.push_back(p1);
}

void printPerson () {
//creating iterator
vector<person*>::iterator it;

//printing all elements
cout << "vector arr elements are: ";
for (it = arr.begin(); it != arr.end(); it++)
cout << *it << " ";
cout << endl;

}

主要功能
int main() {
person p1("okoro", 12);

p1.printPerson();

return 0;

}

最佳答案

如果 vector 可以拥有人的所有权(在内存的意义上),只需使用

vector<person> arr;

正如评论中所建议的那样。

然后你的迭代变成(使用 c++11 循环):
for (const person& p : arr)
cout << p << " ";

顺便说一句,将类型的第一个字母大写是一个很好的约定:

关于c++ - 从人 vector 插入和读取文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61951199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com