vector

目录

1.模版的原理:

2.释放空间:

3.越界问题:

insert

vector可不可以代替string

vector迭代器的失效问题(一般都是insert和erase后默认失效)

vector开空间

在用erase会出现的问题

类名替代类型

List排序

迭代器的区间构造


1.模版的原理:

我们要去做的事情让编译器去做

2.释放空间:

释放空间要从首元素释放,不能从中间去释放

3.越界问题:

[]越界会去断言

cat越界互抛异常

insert

insert 不支持下标只支持迭代器,

vector可不可以代替string

vector支持比较大小,但是不支持流插入和流提取,若想去实现的话直接push_back就可以了

vector也是不可以去代替string,因为vector的char没有\0,但是优点的话vector可以去自定义类型

vector迭代器的失效问题(一般都是insert和erase后默认失效)

1.没有实例化不能从类模板里面去提取

2.如果编译器不能区分是类型还是静态成员变量,我们可以在前面加上typename,这样的话编译器就可以去知道是类型了。

3迭代器的传值要求左闭右开。

最好在使用之后就不要访问了,要使用的话就去刷新一下迭代器

vector开空间

vector的空间在VS的下面是1.5倍增加,但是在g++是按照2倍的增加

在用erase会出现的问题

1.我们没有去用else导致我们的在偶数的时候会去少删,或则在不是奇数的时候会直接崩溃。这里面我们会去一下走2次

2.我们最好在erase加一个返回值

类名替代类型

在c++里面可以用类名去替代类型,但是古vy建议这么写不然的会很难理解

List排序

(链表也有排序,但是排序的效率会低一些),一般都是用的归并排序

迭代器的区间构造

其实两个动心可以互相去嵌套的,类模板里面可以去嵌套函数模板,函数模板里面也可以去嵌套类模板,

05-29
C++ 中,vector 是一个动态数组容器,可以存储任意类型的数据。使用 vector 可以方便地进行动态内存分配和管理,而不需要手动进行内存分配和释放。 vector 提供了一系列的成员函数,可以方便地进行元素的插入、删除、查找和访问等操作。以下是一些常用的操作: 1. 创建 vector 对象: ```c++ #include <vector> std::vector<int> vec; // 创建一个空的 vector std::vector<int> vec1(10); // 创建一个包含 10 个默认值的 vector std::vector<int> vec2(10, 0); // 创建一个包含 10 个值为 0 的 vector std::vector<int> vec3 = {1, 2, 3, 4}; // 创建一个包含 4 个元素的 vector,初始值为 1, 2, 3, 4 std::vector<int> vec4(vec3); // 创建一个与 vec3 完全相同的新 vector ``` 2. 访问 vector 中的元素: ```c++ std::vector<int> vec = {1, 2, 3, 4}; std::cout << vec[0] << std::endl; // 访问第一个元素,输出 1 std::cout << vec.at(2) << std::endl; // 访问第三个元素,输出 3 std::cout << vec.front() << std::endl; // 访问第一个元素,输出 1 std::cout << vec.back() << std::endl; // 访问最后一个元素,输出 4 ``` 3. 插入和删除元素: ```c++ std::vector<int> vec = {1, 2, 3, 4}; vec.push_back(5); // 在末尾插入元素 5 vec.insert(vec.begin() + 2, 10); // 在第三个位置插入元素 10 vec.erase(vec.begin() + 1); // 删除第二个元素 ``` 4. 获取 vector 中的信息: ```c++ std::vector<int> vec = {1, 2, 3, 4}; std::cout << vec.size() << std::endl; // 输出 vector 的大小,即元素个数,输出 4 std::cout << vec.empty() << std::endl; // 判断 vector 是否为空,输出 0(因为不为空) ``` vector 还提供了一些其他的函数,如排序、反转、查找等,具体可以参考 C++ 标准库的文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值