当前位置: 首页 > news >正文

大庆门户网站wordpress大学主题3.5

大庆门户网站,wordpress大学主题3.5,狮岭箱包外发加工网,wordpress 官方主题 有哪些1 vector 是什么vector 是一个顺序容器&#xff0c;它内部使用连续的内存空间来存储元素。可以像使用数组一样访问 vector 中的元素。可以自动扩展大小。2 vector 的基本用法&#xff08;1&#xff09;引入头文件#include <vector>&#xff08;2&#xff09;定义 vecto…

1  vector 是什么

        vector 是一个顺序容器,它内部使用连续的内存空间来存储元素。

        可以像使用数组一样访问 vector 中的元素。

        可以自动扩展大小。

2  vector 的基本用法

(1)引入头文件

#include <vector>

(2)定义 vector

std::vector<int> numbers;    // 定义一个存储 int 类型的 vector

        std::vector 是 vector 的命名空间

        int 是 vector 中存储的数据类型。

        numbers 是 vector 的变量名。

3  常用操作

(1)添加元素

numbers.push_back(10);    // 在 vector 末尾添加一个元素

(2)访问元素

int first = numbers[0];    // 使用下标访问元素(不检查越界)
int second = numbers.at(1);    // 使用 at() 方法访问元素(会检查越界)

(3)获取 vector 的大小

int size = numbers.size();    //获取当前元素个数

(4)判断是否为空

if (numbers.empty())
{std::cout << "Vector 是空的" << std::endl;
}

(5)清空 vector

numbers.clear();    // 清除所有元素

(6)删除最后一个元素

numbers.pop_back();    //删除最后一个元素

4  初始化 vector

(1)默认初始化(空 vector)

std::vector<int> vec1;    // 空 vector

(2)指定大小

std::vector<int> vec2(5);    //创建一个包含 5 个 0 的 vector

(3)指定大小和初始值

std::vector<int> vec3(5,10);    // 创建一个包含 5 个 10 的 vector

(4)用数组初始化

int arr[] = {1,2,3,4,5};
std::vector<int> vec4(arr,arr + 5);    // 用数组初始化 vector

5  遍历 vector

(1)使用下标遍历

for (size_t i = 0; i < vec.size(); ++i)
{std::cout << vec[i] << " ";
}

(2)使用迭代器遍历

for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++i)
{std::cout << *it << " " ;
}

(3)使用范围 for 循环 (C++ 11 及以上)

for (int num : vec)
{std::cout << num << " " ;
}

6  vector 的性能特点

        1.随机访问快:因为 vector 是连续内存,所以随机访问元素非常快。

        2.尾插 / 尾删 快:push_back 和 pop_back 是常数时间操作。

        3.中间插入 / 删除 慢:因为需要移动元素,时间复杂度是 O(n)。

        4.自动扩容:当 vector 容量不足时,会自动分配更大的内存空间,并复制原有元素。

7  完整示例代码

#include <iostream>
#include <vector>  // 引入 vector 头文件int main() {// 1. 定义并初始化一个 vector// 使用初始化列表的方式创建一个包含 5 个整数的 vectorstd::vector<int> numbers = {10, 20, 30, 40, 50};// 2. 输出 vector 的大小和内容std::cout << "初始 vector 的大小是: " << numbers.size() << std::endl;std::cout << "初始 vector 的内容是: ";// 使用范围 for 循环遍历 vectorfor (int num : numbers) {std::cout << num << " ";}std::cout << std::endl;// 3. 在 vector 末尾添加元素// push_back() 会将元素添加到 vector 的末尾numbers.push_back(60);numbers.push_back(70);std::cout << "添加元素后的 vector 内容是: ";for (int num : numbers) {std::cout << num << " ";}std::cout << std::endl;// 4. 修改 vector 中的某个元素// 使用下标访问并修改索引为 2 的元素(从 0 开始)numbers[2] = 99;std::cout << "修改后的 vector 内容是: ";for (int num : numbers) {std::cout << num << " ";}std::cout << std::endl;// 5. 使用 at() 方法访问元素(带越界检查)// at() 会检查索引是否越界,如果越界会抛出异常try {std::cout << "使用 at() 访问第 5 个元素: " << numbers.at(5) << std::endl;} catch (const std::out_of_range& e) {// 捕获越界异常并输出错误信息std::cout << "越界访问错误: " << e.what() << std::endl;}// 6. 删除最后一个元素// pop_back() 会删除 vector 的最后一个元素numbers.pop_back();std::cout << "删除最后一个元素后的 vector 内容是: ";for (int num : numbers) {std::cout << num << " ";}std::cout << std::endl;// 7. 使用迭代器遍历 vector// begin() 返回指向第一个元素的迭代器// end() 返回指向最后一个元素之后的迭代器std::cout << "使用迭代器遍历 vector: ";for (std::vector<int>::iterator it = numbers.begin(); it != numbers.end(); ++it) {// *it 表示解引用迭代器,获取当前元素std::cout << *it << " ";}std::cout << std::endl;// 8. 使用数组初始化 vector// 定义一个数组int arr[] = {100, 200, 300};// 使用数组的起始地址和结束地址初始化 vectorstd::vector<int> vecFromArr(arr, arr + 3);std::cout << "从数组初始化的 vector 内容是: ";for (int num : vecFromArr) {std::cout << num << " ";}std::cout << std::endl;// 9. 二维 vector(vector 的 vector)// 定义一个二维 vector,表示一个 3x3 的矩阵std::vector<std::vector<int>> matrix = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};std::cout << "二维 vector 内容是: " << std::endl;// 外层循环遍历每一行for (const auto& row : matrix) {// 内层循环遍历每一行中的元素for (int val : row) {std::cout << val << " ";}std::cout << std::endl;}// 10. 清空 vector// clear() 会删除 vector 中的所有元素numbers.clear();std::cout << "清空后的 vector 大小是: " << numbers.size() << std::endl;return 0;
}

8  总结

功能说明
push_back()在 vector 末尾添加元素
pop_back()删除 vector 的最后一个元素
size()获取 vector 中元素的个数
at()安全访问元素(带越界检查)
[]快速访问元素(不检查越界)
clear()清空 vector 中的所有元素
empty()判断 vector 是否为空(未在本例中使用)
begin() / end()获取迭代器,用于遍历 vector
数组初始化 vector使用数组指针初始化 vector
二维 vectorvector 的 vector,用于表示矩阵等结构
异常处理捕获越界访问异常
范围 for 循环C++11 引入的简洁遍历方式

http://www.dtcms.com/a/482648.html

相关文章:

  • C++ - vector
  • 做百度竞价网站搜索不到百度北京总部电话
  • Process Monitor 学习笔记(5.5):保存并打开追踪记录(PML/CSV)与协作分享全攻略
  • 论MyBatis和JPA权威性
  • SAP MM采购订单创建接口分享
  • 基于单片机的简易智能衣架控制系统设计
  • rrk3588 与 NPU 主机下的异构通信:基于 PCIe 的设计与实现
  • 2025年--Lc185--63.不同路径II(动态规划,矩阵)--Java版
  • 跨境电商网站排行榜wordpress数据量大网站访问
  • 从零起步学习MySQL || 第四章:DQL语句定义及常见用法示例
  • 网站建设费如何核算.la域名的门户网站
  • 场景中的建筑静态物体转为actor,保持建筑的相对位置。
  • 数字孪生为什么需要5G?低延迟与高可靠实现精准控制
  • Idea 启动项目把启动类显示在左下角 并显示端口号
  • 网站网页模板网页设计培训哪家机构好
  • SLAM: 如何生成odom数据
  • 环境搭建node.js gnvm
  • 网站建设 就业方向东莞房价2021
  • Spring容器的实现
  • JWT 漏洞全解析:从原理到实战
  • 基于Redis6.2.8版本部署Redis Cluster集群
  • 工控一体机在智慧称重食堂中的应用
  • 网络包封装全解析:从字节流到数据帧
  • Spring MVC入门补充2
  • 石家庄站列车时刻表美食网站二级页面模板
  • GS016电动工具调速控制电路
  • Gartner:AI增强软件测试工具魔力象限报告精编(2025年10月)
  • 绵阳公司商务网站制作沈阳企业网站制作公司
  • elasticsearch-8.12.2集群部署
  • 【教程】增强版 print 函数,支持彩色与样式化终端输出