c++ vector 装结构体struct类型变量, 结构体成员变量的值
时间: 2023-07-08 13:50:19 浏览: 124
在 C++ 中,可以使用 vector 容器来存储结构体类型的变量。假设我们有以下结构体定义:
```
struct Student {
int id;
std::string name;
};
```
可以使用 vector 容器来存储结构体类型的变量:
```
std::vector<Student> students;
// 添加学生
Student new_student = {1, "Tom"};
students.push_back(new_student);
// 修改学生姓名
students[0].name = "Jerry";
```
在使用 vector 容器时,可以直接访问结构体成员变量,并进行修改。需要注意以下几点:
- 可以使用 push_back 函数向 vector 容器中添加元素。
- 可以使用下标运算符 [] 访问 vector 容器中的元素,并进行修改。
相关问题
c++ 定义一个结构体 成员变量为动态分配的不定长vector
可以使用C++标准库中的vector来实现结构体成员变量为动态分配的不定长vector,示例代码如下:
```c++
#include <vector>
struct MyStruct {
std::vector<int> arr; // 成员变量为vector
MyStruct(int s) { // 构造函数中初始化vector大小
arr.resize(s);
}
};
```
在使用时,先创建结构体对象,并指定vector大小,然后就可以通过下标访问vector元素了,示例代码如下:
```c++
int main() {
MyStruct ms(10); // 创建结构体对象,并指定vector大小为10
for (int i = 0; i < ms.arr.size(); i++) {
ms.arr[i] = i; // 访问vector元素
}
return 0;
}
```
由于vector在析构时会自动释放内存,因此不需要手动调用析构函数。
c++对vector结构体数组进行排序
可以使用`std::sort()`函数对`vector`结构体数组进行排序。以下是一个示例代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
struct MyStruct {
int value;
// 其他成员变量...
};
bool compare(const MyStruct& a, const MyStruct& b) {
return a.value < b.value;
}
int main() {
std::vector<MyStruct> myVector;
// 将需要排序的结构体对象添加到vector中
std::sort(myVector.begin(), myVector.end(), compare);
for (const auto& item : myVector) {
// 输出排序后的结果
std::cout << item.value << " ";
}
return 0;
}
```