C++ vector容器

1. 定义初始化vector对象

vector<string> vStr; // 空容器

vStr.push_back("ABC");
vStr.push_back("123");

vector<string> vStr1(vStr);  // 拷贝构造
vector<string> vStr2 = vStr; // 拷贝构造

// C++ 11
vector<string> vStr3 = { "AAA", "BBB", "123" };
vector<string> vStr4{ "AAA", "BBB", "123" };

vector<int> vStr5 = { 1, 2, 3 };
vector<int> vStr6{ 1, 2, 3 };

// 创建指定数量的元素
vector<int> v(10, 1);           // v中有10个1
vector<string> v1(5, "Hello");  // v1中有5个Hello

vector<int> v2(5);     // v2中有5个0
vector<string> v3(5);  // v3中有5个空串 ""

vector<int> v4{ 3 };             // v4中有1个3
vector<string> v5{ "Hello" };    // v5中有1个Hello
vector<string> v6{ 3 };          // v6中有3个空串 ""
vector<string> v7{ 3, "Hello" }; // v7中有3个Hello
vector<int> v8{ 3, 1 };          // v8中有元素3、1,等同于初始化列表

注意:vector不能装引用,如下:

vector<int&> v0; // 错误
vector<int*> v1; // 正确

2. vector常用函数

2.1 empty  判断是否为空

vector<int> v;
if(v.empty()) {
}

2.2 push_back  尾插

vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);

2.3 emplace_back  尾插

2.4 size  返回元素个数

vector<string> v;
v.push_back("123");
v.push_back("ABC");
v.size();  // 2

2.5 clear  清空容器

vector<string> v;
v.push_back("123");
v.push_back("ABC");
v.size();  // 2

v.clear();
v.size();  // 0

2.6 v[n]  返回vector容器中第n个元素

vector<string> v;
v.push_back("123");
v.push_back("ABC");

v[1]; // "ABC"

2.7 =  赋值

vector<int> v1{ 1, 2, 3, 4 };
vector<int> v2{ 5 };

v2 = v1;      // v2中的元素就和v1中一样了

v2 = { 99 };  // v2中的元素为99

2.8 ==、!=  判断两个容器中对应位置的元素是否相同

vector<int> v1{ 1, 2, 3, 4 };
vector<int> v2{ 5 };

v1 == v2;   // false

v2 = v1;
v1 == v2;   // true

v1.clear();
v2.clear();
v1 == v2;   // true

2.9 范围for对vector的使用

vector<int> v { 1, 2, 3, 4 };
for(auto& val : v) {
    val *= 2;  // v中每个元素都*2
}

遍历容器时,建议不要进行增、删、重分配,否则会造成迭代器失效。

待补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟大的马师兄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值