c++ - 当我在 C++ 中将 vector 与类一起使用时会发生什么

标签 c++ vector

我有 Person 类并创建了一个 Person 类型 vector 。我想知道当我调用带有 vector 索引的 Person 类型函数时会发生什么。这是将对象存储在数组中还是什么?请简要说明,非常感谢。

#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Person
{
int age;
string name;
public:
Person(){};
void getdata()
{
    cout << "Enter your name: ";
    getline(cin >> ws, name);
    cout << "Enter your age: ";
    cin >> age;
}
void showdata()
{
    cout << "\nHello " << name << " your age is " << age;
}
};
void main()
{
vector<Person> myVector(3); 
unsigned int i = 0;
for (i; i < 3; i++)
    myVector[i].getdata();//Does this create & save an objects in that  location   Please explain briefly, Thanks
for (i=0; i < 3; i++)       //What if I do this like
                            /*for (i=0; i < 3; i++)
                                { Person p;
                                myVector.puskback(p); }
                                or what if I want a new data then what??*/

    myVector[i].showdata();
system("pause");
}

最佳答案

不,它不创建对象。所有对象都是在创建 vector 时创建的。它的作用是在已构造的对象上调用 getdata()。 您可以按照建议的方式进行回推,在这种情况下,您希望最初创建一个空 vector (现在您正在创建一个包含 3 个元素的 vector )

关于c++ - 当我在 C++ 中将 vector 与类一起使用时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32148500/

相关文章:

C++ 可变参数模板返回类型

c++ - 在本地类中定义结构并初始化它

c++ - 您可以将操纵器传递给函数吗?

C++捕获命令行逐行输入和输出

c++ - 在 GMP 中使用载体

c++ - 用 boost python 包装 C++ 模板类

C++ 指针数组

c++ - QTreeWidget通过一个函数传递多个项目(多个选择)

c++ - std::vector<bool> resize() 的未定义行为

arrays - Scala 数组与向量