vector里存的是结构体,怎么循环遍历vector,并拿到结构体里的值
时间: 2024-03-09 17:47:02 浏览: 67
可以使用 for 循环遍历 vector,结合迭代器来获取结构体里的值。具体代码如下:
假设结构体为:
```
struct MyStruct {
int id;
std::string name;
};
```
则遍历 vector 并获取结构体里的值的代码如下:
```
std::vector<MyStruct> myVec; // 定义存储结构体的 vector
// 添加结构体到 vector 中
MyStruct s1 = {1, "Tom"};
MyStruct s2 = {2, "Jerry"};
myVec.push_back(s1);
myVec.push_back(s2);
// 循环遍历 vector 并获取结构体里的值
for (std::vector<MyStruct>::iterator it = myVec.begin(); it != myVec.end(); ++it) {
std::cout << "ID: " << it->id << ", Name: " << it->name << std::endl;
}
```
其中,`myVec.begin()` 返回指向 vector 开始位置的迭代器,`myVec.end()` 返回指向 vector 结束位置的迭代器。在循环中,`it` 是迭代器,通过 `it->` 访问结构体里的成员变量。
相关问题
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循环或者迭代器来访问容器中的元素。
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并获取特定成员变量的值
for (std::vector<MyStruct>::iterator it = myVector.begin(); it != myVector.end(); ++it) {
int memberValue = it->value;
std::cout << "Member value: " << memberValue << std::endl;
}
return 0;
}
```
在上面的示例中,我们定义了一个名为MyStruct的结构体,其中包含一个名为value的整型成员变量。然后,我们创建了一个vector容器并向其中添加了两个MyStruct对象。接下来,我们使用迭代器遍历vector,并使用成员访问运算符`->`来获取每个结构体对象的value成员变量的值,并输出到控制台上。
注意,在实际使用中,你需要根据实际情况修改结构体和成员变量的名称。
阅读全文