- Code:
- #include <vector>
- using namespace std;
- struct NPC
- {
- char * name;
- int age;
- float high;
- };
- int main(){
- // 练习使用 vector 数组
- bool isKong = false;
- NPC player = {0};
- NPC players[3] = { { "ralian", 18, 170.0f }, { "xer.m", 21, 167.2f }, { "1ass o", 24, 164.8f } };
- vector<NPC> player1(3,{ "ralian", 18, 170.0 });
- vector<NPC> player2(3, {"tx.m",21,167.2});
- vector<NPC> player3(players,players+3);
- player = player3.front();// 获取数组第一个元素
- player = player3.back();// 获取数组最后一个元素
- isKong = player3.empty();// 看数组是否为空
- player1.swap(player2);
- swap(player1, player2);
- player2.clear();// 清空数组
- isKong = player2.empty();
- // 使用迭代器遍历数组
- vector<NPC>::iterator itor;
- for (itor = player3.begin(); itor != player3.end(); ++itor)// 注意 for 循环里面用分号不是逗号
- {
- printf_s("name=%s,age=%d,high=%f\n", itor->name, itor->age, itor->high);
- }
- player2.push_back({ "xiaojian", 22, 158.0f });// 向尾部插入元素
- player1.insert(player1.end(), { "xm", 53, 120.5f });
- player1.insert(player1.begin()+1,10,{ "soug", 33, 117.6f });
- player1.pop_back();// 删除结尾的元素
- player1._Pop_back_n(3);// 删除结尾的最后 3 元素
- player1.erase(player1.begin()+2);// 删除数组下标为 2 的元素
- player1.erase(player1.begin() + 1, player1.begin() + 3);// 删除数组下标为 [1,3) 的元素
- player1.erase(player1.begin() + 1, player1.end());// 删除数组下标从 1 开始到最后一个元素
- return 0;
- }
来源: http://www.bubuko.com/infodetail-3373272.html