成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

在C/C 中使用vector存放結(jié)構(gòu)體類型變量

在C/C 中,常常需要使用容器來(lái)存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),其中vector是一個(gè)常見(jiàn)且方便的選擇。在vector中存放結(jié)構(gòu)體struct類型的變量有兩種主要方法。第一種是存放結(jié)構(gòu)體類型變量的副本,第二種是存放

在C/C 中,常常需要使用容器來(lái)存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),其中vector是一個(gè)常見(jiàn)且方便的選擇。在vector中存放結(jié)構(gòu)體struct類型的變量有兩種主要方法。第一種是存放結(jié)構(gòu)體類型變量的副本,第二種是存放指向結(jié)構(gòu)體類型變量的指針。

存放結(jié)構(gòu)體類型變量的副本

```cpp

include

include

include

typedef struct student {

char school_name[100];

char gender;

int age;

bool is_absent;

} StudentInfo;

typedef std::vector StudentInfoVec;

void print(StudentInfoVec *studentinfovec) {

for (int j 0; j < (*studentinfovec).size(); j ) {

std::cout << (*studentinfovec)[j].school_name << " ";

std::cout << (*studentinfovec)[j].gender << " ";

std::cout << (*studentinfovec)[j].age << " ";

std::cout << (*studentinfovec)[j].is_absent << std::endl;

}

}

int main() {

StudentInfo micheal {"Micheal", 'm', 18, false};

StudentInfo cherry {"Cherry", 'f', 16, true};

StudentInfoVec studentinfovec;

studentinfovec.push_back(micheal);

studentinfovec.push_back(cherry);

print(studentinfovec);

system("pause");

return 0;

}

```

存放指向結(jié)構(gòu)體類型變量的指針

```cpp

include

include

include

typedef struct student {

char* school_name;

char gender;

int age;

bool is_absent;

} StudentInfo;

typedef std::vector StudentInfoPtrVec;

void print(StudentInfoPtrVec* studentinfoptrvec) {

for (int j 0; j < (*studentinfoptrvec).size(); j ) {

std::cout << (*studentinfoptrvec)[j]->school_name << " ";

std::cout << (*studentinfoptrvec)[j]->gender << " ";

std::cout << (*studentinfoptrvec)[j]->age << " ";

std::cout << (*studentinfoptrvec)[j]->is_absent << std::endl;

}

}

int main() {

StudentInfoPtrVec studentinfoptrvec;

char* p_char_1 NULL;

p_char_1 new char[100];

strcpy(p_char_1, "Micheal");

StudentInfo* p_student_1 new StudentInfo;

p_student_1->school_name p_char_1;

p_student_1->gender 'm';

p_student_1->age 18;

p_student_1->is_absent false;

studentinfoptrvec.push_back(p_student_1);

char* p_char_2 NULL;

p_char_2 new char[100];

strcpy(p_char_2, "Cherry");

StudentInfo* p_student_2 new StudentInfo;

p_student_2->school_name p_char_2;

p_student_2->gender 'f';

p_student_2->age 16;

p_student_2->is_absent false;

studentinfoptrvec.push_back(p_student_2);

print(studentinfoptrvec);

delete p_char_1;

delete p_student_1;

delete p_char_2;

delete p_student_2;

system("pause");

return 0;

}

```

通過(guò)以上兩種方式,我們可以靈活地在C/C 中使用vector來(lái)存放結(jié)構(gòu)體類型的變量,并根據(jù)實(shí)際需求選擇適合的存儲(chǔ)方式。

標(biāo)簽: