我是C ++的新手。我搜索了一下,但是找不到有用的东西。一个非常简单的程序,只是试图将Vector中的“ Person”对象存储并访问这些对象。到目前为止,“我的向量”拥有一个类型为“人”的对象。 “人员”对象具有“名称”字段。我只是试图显示该“名称”字段。但是,当程序运行时,没有任何内容打印到控制台。
我对Vectors和指针仍然很满意,所以我的Vector设置可能是原因。我的“ getName()”函数已正确设置。有人可以让我知道我在向量中声明和插入对象的方式以及向量声明/迭代是否正确吗?
#include <iostream>
#include <string>
#include <ctime>
#include <vector>
#include "Person.h"
#include "Record.h"
//addition of a user to list
void addUser(int id, int age, std::string name, std::vector<Person*> userList)
{
Person *newPerson = new Person(id, age, name);
userList.push_back(newPerson);
}
//deletion of a user of the list by ID
void deleteUserByID(int id, std::vector<Person*> userList)
{
for(int i = 0; i < userList.size(); i++) {
if (userList.at(i)->getID() == id)
delete userList.at(i);
}
}
//Print all user names in the list
void printUserList(std::vector<Person*> userList)
{
for(auto it = std::begin(v); it != std::end(v); it++)
{
std::string name = it->getName();
}
}
int main ()
{
//create vector
static std::vector<Person*> userList;
//add first user
addUser(626968231, 21, "Ryan", userList);
//print all users (just one so far)
printUserList(userList);
return 0;
}
答案 0 :(得分:0)
函数userlist
的第四个参数adduser()
按值调用,将其更改为按引用调用。
并对delete()
函数执行相同的操作。