结构体放进容器怎么初始化
时间: 2023-07-21 20:14:02 浏览: 108
将结构体放进容器的初始化方式有多种,以下列举几种常见的方式:
1. 使用结构体默认构造函数进行初始化:
```c++
struct myStruct {
int a;
double b;
};
std::vector<myStruct> vec{myStruct(), myStruct()};
```
2. 使用结构体自定义构造函数进行初始化:
```c++
struct myStruct {
int a;
double b;
myStruct(int a_, double b_) : a(a_), b(b_) {}
};
std::vector<myStruct> vec{myStruct(1, 2.0), myStruct(3, 4.0)};
```
3. 使用带有初始化列表的构造函数进行初始化:
```c++
struct myStruct {
int a;
double b;
myStruct(std::initializer_list<int> list) : a(*list.begin()), b(*(list.begin() + 1)) {}
};
std::vector<myStruct> vec{{1, 2.0}, {3, 4.0}};
```
注意,以上代码仅供参考,具体的初始化方式应根据实际情况进行调整。
相关问题
c++ vector容器里存结构体数据,怎么初始化
可以使用以下方式初始化一个存储结构体的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);
```
阅读全文