如何用vector容器往一个结构体中填入数据
时间: 2024-05-07 07:23:59 浏览: 9
可以使用push_back()函数将元素添加到vector容器中,然后使用结构体对象的成员变量来存储vector中的数据。例如:
```c++
#include <vector>
#include <iostream>
struct Student {
int id;
std::string name;
int age;
};
int main() {
std::vector<Student> students;
students.push_back({1, "Alice", 18});
students.push_back({2, "Bob", 19});
for (auto& s : students) {
std::cout << "id: " << s.id << ", name: " << s.name << ", age: " << s.age << std::endl;
}
return 0;
}
```
这段代码中,我们定义了一个结构体Student,然后使用vector容器来存储多个学生信息。在main函数中,我们使用push_back()函数将两个学生信息添加到vector中。最后,我们使用for循环遍历vector容器,并输出里面的学生信息。
相关问题
vector容器保存一个结构体,如何获取结构体中一个成员变量的值
要获取结构体中一个成员变量的值,可以通过迭代器或索引访问vector容器中的结构体对象,然后使用点运算符(.)来访问该成员变量。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
struct MyStruct {
int value;
// 其他成员变量...
};
int main() {
std::vector<MyStruct> myVector;
// 添加结构体对象到vector容器
MyStruct obj1;
obj1.value = 10;
myVector.push_back(obj1);
MyStruct obj2;
obj2.value = 20;
myVector.push_back(obj2);
// 获取vector容器中第一个结构体对象的value成员变量的值
int value1 = myVector[0].value;
std::cout << "第一个结构体对象的value值为:" << value1 << std::endl;
// 获取vector容器中第二个结构体对象的value成员变量的值
int value2 = myVector[1].value;
std::cout << "第二个结构体对象的value值为:" << value2 << std::endl;
return 0;
}
```
运行上述代码,将会输出:
```
第一个结构体对象的value值为:10
第二个结构体对象的value值为:20
```
通过索引或迭代器访问vector容器中的结构体对象,并使用点运算符(.)来访问结构体的成员变量。
将一个列表中的值循环填入一个结构体中
如果你想将一个列表中的值循环填入一个结构体中,可以这样做:
```
struct MyStruct {
int field1;
double field2;
string field3;
};
// 定义结构体列表
vector<MyStruct> myStructList;
// 填充列表中的值
for (int i = 0; i < myStructList.size(); i++) {
myStructList[i].field1 = value1List[i];
myStructList[i].field2 = value2List[i];
myStructList[i].field3 = value3List[i];
}
```
在这个例子中,我们定义了一个名为 `MyStruct` 的结构体,其中包含三个字段:`field1`、`field2` 和 `field3`。然后,我们创建了一个结构体列表 `myStructList`,并使用循环将其填充。