C++ STL vector完全指南:初始化、操作与接口解析

需积分: 0 0 下载量 180 浏览量 更新于2024-06-14 1 收藏 17KB DOCX 举报
本文主要介绍了C++中的STL容器vector,包括其初始化方法、赋值操作、数据的增删查改以及其他重要的接口功能。 一、vector的初始化 1. 默认构造函数:创建一个不包含任何元素的空vector。 ```cpp std::vector<int> v; // 创建一个空的vector ``` 2. 拷贝构造函数(copy区间):通过已有的vector区间复制元素来创建新的vector。 ```cpp std::vector<int> v1 = {1, 2, 3, 4, 5}; std::vector<int> v2(v1.begin(), v1.end()); // 复制v1的所有元素到v2 ``` 3. 指定数量和元素值的构造函数:创建具有指定数量且所有元素都相同的新vector。 ```cpp std::vector<int> v3(3, 10); // 创建一个含有3个10的vector ``` 4. 指定数量的构造函数:创建具有指定数量但元素值未定义的vector(通常为默认构造的对象)。 ```cpp std::vector<int> v4(5); // 创建一个含有5个默认值(通常是0)的vector ``` 5. 拷贝构造函数(常规形式):复制一个已经存在的vector。 ```cpp std::vector<int> v5(v1); // 创建一个与v1完全相同的vector v5 ``` 二、vector的初始化-赋值 1. `.assign(beg, end)`:用指定区间内的元素替换vector内现有的元素。 ```cpp std::vector<int> v6; v6.assign(v1.begin(), v1.end()); // 将v1的内容赋给v6 ``` 2. `.assign(n, elem)`:用指定数量的同一元素替换vector内现有元素。 ```cpp v6.assign(4, 20); // 将v6的元素替换为4个20 ``` 3. 重载等号操作符 `operator=`:赋值运算符,将一个vector的元素赋给另一个vector。 ```cpp v6 = v1; // v6现在等于v1 ``` 4. 直接列表初始化:使用大括号{}创建vector并初始化元素。 ```cpp std::vector<int> v7 = {1, 3, 5, 7, 9}; // 直接初始化vector ``` 5. `swap` 函数:交换两个vector的内容。 ```cpp std::vector<int> v8, v9; // ... 初始化v8和v9 ... v8.swap(v9); // v8和v9的内容互换 ``` 三、数据的增删查改 1. `.at(int id)`:安全访问vector中的元素,若索引超出范围会抛出异常。 ```cpp std::vector<int> v10 = {1, 2, 3}; int value = v10.at(1); // 获取第二个元素的值 ``` 2. `.front()`:获取第一个元素。 3. `.back()`:获取最后一个元素。 4. `[]` 访问:直接通过索引访问vector中的元素。 5. 插入函数:使用`.insert()`在指定位置插入元素。 ```cpp v10.insert(v10.begin() + 1, 4); // 在第二个位置插入4 ``` 6. `.push_back(ele)`:在vector尾部添加元素。 7. `.pop_back()`:移除vector尾部的元素。 8. 删区间:使用`.erase()`删除指定范围内的元素。 9. 删指定位置:通过迭代器删除单个元素。 10. 清空:调用`.clear()`函数清除所有元素。 四、其他接口 1. `.size()`:返回vector中元素的数量。 2. `.empty()`:检查vector是否为空。 3. `.resize(int num)`:调整vector大小,若扩展会用默认值填充,若缩减则删除元素。 4. `.capacity()`:返回vector当前能容纳的元素数量。 5. `.reserve(int len)`:预留内存空间,确保vector可以容纳至少len个元素,减少不必要的内存分配。 总结:C++中的STL vector提供了丰富的操作方法,用于创建、初始化、操作和管理动态数组。理解这些方法有助于编写高效且可靠的代码。
350 浏览量
2025-01-06 上传
在科技与司法的交响曲中,智慧法院应运而生,成为新时代司法服务的新篇章。它不仅仅是一个概念,更是对法院传统工作模式的一次深刻变革。智慧法院通过移动信息化技术,为法院系统注入了强大的生命力,有效缓解了案多人少的矛盾,让司法服务更加高效、便捷。 立案、调解、审判,每一个阶段都融入了科技的智慧。在立案阶段,智慧法院利用区块链技术实现可信存证,确保了电子合同的合法性和安全性,让交易双方的身份真实性、交易安全性得到了有力见证。这不仅极大地缩短了立案时间,还为后续审判工作奠定了坚实的基础。在调解阶段,多元调解服务平台借助人工智能、自然语言处理等前沿技术,实现了矛盾纠纷的快速化解。无论是矛盾类型的多元化,还是化解主体的多元化,智慧法院都能提供一站式、全方位的服务,让纠纷解决更加高效、和谐。而在审判阶段,智能立案、智能送达、智能庭审、智能判决等一系列智能化手段的应用,更是让审判活动变得更加智能化、集约化。这不仅提高了审判效率,还确保了审判质量的稳步提升。 更为引人注目的是,智慧法院还构建了一套完善的执行体系。移动执行指挥云平台的建设,让执行工作变得更加精准、高效。执行指挥中心和信息管理中心的一体化应用,实现了信息的实时传输和交换,为执行工作提供了强有力的支撑。而执行指挥车的配备,更是让执行现场通讯信号得到了有力保障,应急通讯能力得到了显著提升。这一系列创新举措的实施,不仅让执行难问题得到了有效解决,还为构建诚信社会、保障金融法治化营商环境提供了有力支撑。智慧法院的出现,让司法服务更加贴近民心,让公平正义的阳光更加温暖人心。