C ++向量未显示所包含对象的数据

时间:2018-07-29 05:14:07

标签: c++

我是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; 
}

1 个答案:

答案 0 :(得分:0)

函数userlist的第四个参数adduser()按值调用,将其更改为按引用调用。 并对delete()函数执行相同的操作。