阅读量:2
在C++中,可以通过以下方式传递和返回结构体数组:
- 使用指针传递结构体数组:
#include
struct Student {
std::string name;
int age;
};
void printStudents(Student* students, int size) {
for (int i = 0; i< size; ++i) {
std::cout << "Name: "<< students[i].name << ", Age: "<< students[i].age<< std::endl;
}
}
int main() {
Student students[] = {{"Alice", 20}, {"Bob", 22}, {"Charlie", 21}};
int size = sizeof(students) / sizeof(Student);
printStudents(students, size);
return 0;
}
- 使用引用传递结构体数组:
#include
struct Student {
std::string name;
int age;
};
void modifyStudents(Student* students, int size) {
for (int i = 0; i< size; ++i) {
students[i].age += 1;
}
}
int main() {
Student students[] = {{"Alice", 20}, {"Bob", 22}, {"Charlie", 21}};
int size = sizeof(students) / sizeof(Student);
modifyStudents(students, size);
for (int i = 0; i< size; ++i) {
std::cout << "Name: "<< students[i].name << ", Age: "<< students[i].age<< std::endl;
}
return 0;
}
- 使用
std::vector传递和返回结构体数组:
#include
#include
struct Student {
std::string name;
int age;
};
std::vector createStudents() {
std::vector students = {{"Alice", 20}, {"Bob", 22}, {"Charlie", 21}};
return students;
}
void printStudents(const std::vector& students) {
for (const auto& student : students) {
std::cout << "Name: "<< student.name << ", Age: "<< student.age<< std::endl;
}
}
int main() {
std::vector students = createStudents();
printStudents(students);
return 0;
}
这里我们使用了std::vector来存储结构体数组,并通过值传递和返回。std::vector会自动管理内存,因此不需要手动分配和释放内存。
以上就是关于“在C++中如何传递和返回struct数组”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm