c++ vector容器里存结构体数据,怎么初始化
时间: 2023-10-19 21:11:39 浏览: 644
可以使用以下方式初始化一个存储结构体的vector容器:
1. 使用默认构造函数初始化空的vector容器,然后使用push_back()函数添加结构体数据。
```c++
struct Person {
string name;
int age;
};
vector<Person> people;
people.push_back({"Alice", 25});
people.push_back({"Bob", 30});
```
2. 在声明vector容器时,使用初始化列表初始化结构体数据。
```c++
vector<Person> people = {{"Alice", 25}, {"Bob", 30}};
```
3. 使用emplace_back()函数添加结构体数据,该函数可以直接在vector容器中构造对象,无需提前定义对象。
```c++
vector<Person> people;
people.emplace_back("Alice", 25);
people.emplace_back("Bob", 30);
```
相关问题
c++ vector容器存结构体数组元素
可以使用vector容器存储结构体数组元素,具体做法如下:
1. 定义结构体类型和vector容器:
```c++
struct Student {
string name;
int age;
};
vector<Student> studentList;
```
2. 向vector容器中添加元素:
```c++
Student s1 = {"Tom", 18};
Student s2 = {"Jerry", 19};
studentList.push_back(s1);
studentList.push_back(s2);
```
3. 遍历vector容器中的元素:
```c++
for (int i = 0; i < studentList.size(); i++) {
cout << "Name: " << studentList[i].name << ", Age: " << studentList[i].age << endl;
}
```
注意,使用vector容器存储结构体数组元素时,需要定义结构体类型,然后使用vector<结构体类型>定义容器,再将结构体元素添加到容器中。遍历容器时,可以使用for循环或者迭代器来访问容器中的元素。
c++ vector容器里存放比较复杂的结构体数据,怎么初始化
可以使用以下方法初始化一个存放复杂结构体的vector容器:
1. 使用默认构造函数初始化vector容器,然后使用push_back()方法添加结构体数据。
```
struct MyStruct {
int a;
string b;
};
vector<MyStruct> myVector;
MyStruct s1 = {1, "hello"};
MyStruct s2 = {2, "world"};
myVector.push_back(s1);
myVector.push_back(s2);
```
2. 使用列表初始化vector容器。
```
vector<MyStruct> myVector = {
{1, "hello"},
{2, "world"}
};
```
3. 使用emplace_back()方法添加结构体数据。
```
vector<MyStruct> myVector;
myVector.emplace_back(1, "hello");
myVector.emplace_back(2, "world");
```
阅读全文