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

网站推广外链怎么做高端个人网站

网站推广外链怎么做,高端个人网站,比利时网站后缀,jpress和wordpress前引:在C标准模板库(STL)中,vector被誉为“动态数组”的代名词,其灵活性与高效性使其成为处理序列数据的利器。无论是初学者还是资深开发者,掌握vector的底层原理与进阶用法,都是提升C编程能力的…

前引:在C++标准模板库(STL)中,vector被誉为“动态数组”的代名词,其灵活性与高效性使其成为处理序列数据的利器。无论是初学者还是资深开发者,掌握vector的底层原理与进阶用法,都是提升C++编程能力的关键一步。本文将从技术视角深入剖析vector的核心机制:

连续存储的威力​​:探讨vector基于连续内存的随机访问优势,对比链表等容器的性能差异

​​迭代器与算法生态​​:结合STL算法(如sortreverse),展示vector如何无缝集成到泛型编

目录

​Vector介绍

Vector的优势

​Vector的使用

实例化

 尾插元素

尾删元素

访问元素

(1)下标[ ]形式

(2) 迭代器访问

(3)范围for

​编辑

 获取元素个数

 排序(顺序)

排序(逆序)

调整容量

 调整容量+初始化

查找指定内容

指定位置前插入

删除指定位置

去重


​Vector介绍

根据小编自己的理解,Vector是C++标准模板库(STL)提供的一个动态数组容器,类似一个模板,可以存储任何类型的数据,包括自定义类型,综上:Vector很像一个动态数组模板

Vector的优势

(1)动态扩容:Vector通过自动管理内存实现容量扩展,支持灵活调整

(2)连续储存:元素在内存中连续储存,支持访问迭代器,访问时间复杂度为O(1)

(3)模板化设计:可存储任意类型元素,语法为:vector<类型>

​Vector的使用

实例化

我们可以使用 vector<类型>  变量名,后面可以选择无参、有参初始化,例如:

//实例化
vector<int> S1;
vector<char> S2;
vector<char> S3(5);
vector<string> S4(10, "***");
vector<string>S2(S1.begin(), S1.end());

(1)第一个为int类型和第二个为char类型属于无参实例化

(2)第三个类型为char,开辟了5个元素空间

(3)第四个类型为string,10个string对象都指定初始化为了“***”

(4)第五种属于用迭代器去初始化

 尾插元素

尾插和我们之前学习的string很像,包括自动扩容,自动更改数据个数,只是调用对象不同,例如

S1.push_back(1);

对于string类型的动态数组vector也是一样的,例如:

尾删元素

尾删也会自己自己改变数据信息,例如:

S1.pop_back();

对于string类型数据类型的vector也是一样,当初数组来操作:

访问元素
(1)下标[ ]形式

 这种情况跟数组访问一样,通过下标去访问,例如:

//下标括号访问
for (int i = 0; i < S1.size(); i++)
{cout << S1[i] << " ";
}

(2) 迭代器访问
//迭代器访问
vector<string>::iterator it = S1.begin();
while (it != S1.end())
{cout << *it << " ";it++;
}

(3)范围for
//范围for
for (auto S : S1)
{cout << S << " ";
}
 获取元素个数

这里跟string的形式差不多,只是调用对象不同,例如:

S1.size();

 排序(顺序)

将元素按照从小到大的顺序去排序获取结果,这个排序接口不属于vector里面的,属于公有的接口

属于一种算法,需要添加头文件:<algorithm>同时排序会改变元素本来的位置

//排序
sort(S1.begin(), S1.end());
for (auto e : S1)
{cout << e << " ";
}

排序(逆序)

这里有两种方法,同样都是使用迭代器,但是参数不同

第一种:只修改迭代器

sort(S1.rbegin(), S1.rend());

第二种:添加参数 

sort(S1.begin(), S1.end(), greater<string>());

可以使用匿名参数: 

也可以用非匿名参数:

调整容量

reserve 虽然会调整容量,但是不会更改size元素个数

S1.reserve(10);

 调整容量+初始化

resize 可以改变元素个数,同时也会扩容

S1.resize(10,"**");

查找指定内容

这里的 find 不属于vector,而是算法模拟实现

vector<string>::iterator it = find(S1.begin(), S1.end(), "**");
while (it != S1.end())
{if (*it == "**"){cout << *it;}++it;
}

指定位置前插入

insert 在position之前插入val

S1.insert(S1.begin(),"100");

删除指定位置

erase 删除position位置的数据

S1.erase(S1.end() - 1);

去重

unqiue :返回一个迭代器,指向去重后序列的末尾(即最后一个不重复元素的下一个位置)

auto new_end = erase(begin() , end());

例如:

                                                    【雾非雾期待与你的下次相遇!】

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

相关文章:

  • 阳东网站seo深圳定制型网站建设
  • 女装网站建设规划书怎么写湛江网站建设优化建站
  • 网站开发相关期刊比 wordpress
  • 校园二手书交易网站开发站群管理系统cms
  • 巴西支付行业的产品格局
  • 手机网站开发费用企业网站加快企业信息化建设
  • 哪个网站域名解析建设银行积分网站
  • 天津市哪里有做网站广告的新增备案 网站名字
  • 电子商务网站策划书3000字做的最好的网站公司
  • 建设眼镜网站风格织梦dedecms教育培训网站模板
  • 个人备案网站放什么手续东莞公司注册服务平台
  • 浙江省和住房建设厅网站亚马逊电商现在好做吗
  • 【读书笔记】《寻找健康》
  • 基础设施建设的网站wordpress 图片质量
  • 北京房产东莞市seo网络推广品牌
  • AI代码时间复杂度分析工具
  • 自己建站好还是第三方建站好
  • 苏州网站制作 网站网站幻灯通栏代码
  • 安庆做网站网站代理微信小程序开发注册
  • 工信部备案网站查广告创意设计方案
  • 网站建立具体步骤是下载了源码怎么做网站
  • 【741运放RC振荡器+74LS74的D触发起分频】2022-9-22
  • 网站单个页面做301如何自己开个网站平台
  • 株洲新站seowordpress导航栏设置
  • 关于做书的网站斌果主题wordpress
  • 坪地网站建设效果网页制作软件属于应用软件吗
  • 基于ILO和PwC研究报告(2025年):AI暴露度与就业增长关系
  • 所有网站都能进的浏览器不需要备案的服务器
  • 网站编程课程设计心得体会天津高端网站建设公司
  • 安徽省建设协会网站湘潭租房网站