• C++
  • vector入门到放弃1

  • @ 2025-2-16 16:35:04

我来用超可爱的方式给你讲vector的知识点~ 🌟(就像魔法书包一样哦!)


📚 vector是什么?

  • 魔法书包:可以装很多很多东西(比如数字、字符串),还能自动变大变小
  • 和普通数组的区别:普通数组像固定大小的盒子,而vector是会变长的蛇🐍

🎒 vector的魔法功能

1. 创建魔法书包(初始化)

#include <vector> // 必须带上这个魔法咒语
using namespace std;

vector<int> myBag; // 创建一个装整数的空书包
vector<string> candyBox = {"棒棒糖", "巧克力"}; // 已经有糖果的书包

2. 往书包里塞东西(添加元素)

myBag.push_back(10);  // 书包里现在有[10]
myBag.push_back(20);  // 变成[10, 20]
myBag.push_back(30);  // 变成[10, 20, 30]

3. 看看书包里有什么(访问元素)

cout << myBag[0];  // 输出第一个元素:10(注意从0开始数!)
cout << myBag.at(1); // 输出第二个元素:20(更安全的写法)

⚠️ 注意:如果用myBag[5]但书包只有3个元素,会报错!(就像伸手到空口袋找东西一样)

4. 书包现在有多重?(获取大小)

int weight = myBag.size(); // 返回3,因为现在有3个元素

5. 清空书包

myBag.clear(); // 哗啦!书包全空了~

🌟 高级魔法技巧

自动变长的秘密

当你用push_back()时,vector会偷偷做两件事:

  1. 如果书包满了,它会找个更大的新书包,把旧东西复制过去。
  2. 新书包的大小通常是旧书包的两倍!(比如原来能装4个,现在能装8个)

🎨 初始化时指定大小

vector<int> scores(5); // 创建能装5个成绩的书包,默认都是0
vector<int> nums(3, 100); // 创建[100, 100, 100]

🔄 用循环遍历书包

for(int i=0; i<myBag.size(); i++) {
    cout << myBag[i] << " ";
}

// 或者用魔法飞毯循环(C++11以上)
for(int num : myBag) {
    cout << num << " ";
}

🚀 实际例子:装糖果

vector<string> candies;
candies.push_back("🍭"); 
candies.push_back("🍫");
candies.push_back("🍬");

cout << "我有" << candies.size() << "颗糖果:";
for(string candy : candies) {
    cout << candy << " ";
}
// 输出:我有3颗糖果:🍭 🍫 🍬

💡 为什么用vector?

  • 不用提前知道要装多少东西
  • 添加/删除元素超方便
  • 比普通数组更安全(比如可以用at()检查越界)

现在,你可以在绘画界面画一个会变长的蛇形书包,每次添加元素就画长一点~ 🐍🎒 想试试写代码吗?

0 条评论

目前还没有评论...