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

建外贸网站 东莞北京网站建设icp有限公司

建外贸网站 东莞,北京网站建设icp有限公司,外贸网站怎么推广,铁威马内置wordpress目录目录 定义vector: 初始化vector: 输出操作: 使用索引进行遍历输出: 使用迭代器进行输出: 使用at()函数: 数量、容量和判空操作: 减少容量: 删除和插入元素: pu…

目录

定义vector:

初始化vector:

输出操作:

使用索引进行遍历输出:

使用迭代器进行输出:

使用at()函数:

数量、容量和判空操作:

减少容量:

删除和插入元素:

push_back和pop_back:

insert和erase、clear:

访问首元素和尾元素和排序:

查找:


C++中的vector是标准模板库(STL)提供的动态数组容器,可以根据需要随时调整大小。

使用的vector需要包含其头文件<vector>。

定义vector:

#include <iostream>
#include <string>int main(){std::vector<T> vec;return 0;
}

初始化vector:

#include <iostream>
#include <vector>int main(){std::vector<T> vec;//默认初始化std::vector<T> vec1(n,target);//指定大小和默认值,n是个数,target是默认值std::vector<T> vec2(vec1);//拷贝构造,将vec1的值复制给vec2std::vector<T> vec3 = {n1,n2,..,n}使用初始化列表std::vector<T> vec4(std::move(vec3));//将vec3移动给vec4return 0;
}

输出操作:

使用索引进行遍历输出:

#include <iostream>
#include <vector>int main() {std::vector<int> vec = { 1,2,3,4,5,6,7,8,9,10 };for (int i = 0; i < vec.size(); i++) {std::cout << vec[i] << " ";}return 0;
}

示例运行结果:

使用迭代器进行输出:

#include <iostream>
#include <vector>int main() {std::vector<int> vec = { 1,2,3,4,5,6,7,8,9,10 };for (auto it = vec.begin(); it != vec.end(); ++it) {std::cout << *it << " ";}return 0;
}

示例运行结果:

使用at()函数:

#include <iostream>
#include <vector>int main() {std::vector<int> vec = { 1,2,3,4,5,6,7,8,9,10 };for (int i = 0; i < vec.size(); i++) {std::cout << vec.at(i) << " ";}return 0;
}

示例运行结果:

数量、容量和判空操作:

#include <iostream>
#include <vector>int main() {std::vector<int> vec = { 1,2,3,4,5,6,7,8,9,10 };std::cout << "元素数量:" << vec.size() << std::endl;std::cout << "容量大小:" << vec.capacity() << std::endl;if (vec.empty()) {std::cout << "为空" << std::endl;}else {std::cout << "非空" << std::endl;}vec.clear();std::cout << "元素数量:" << vec.size() << std::endl;std::cout << "容量大小:" << vec.capacity() << std::endl;return 0;
}

示例运行结果:

可以看出对数组进行清空,实际容量并不会随着数组被清空而释放,可以使用reserver()可以进行预留空间,在已知数据量的大小时,可以减少动态扩容的开销。reserver()只对容量进行改变,并不影响有效元素数量。

减少容量:

使用shrink_to _fit()函数进行释放空间。

#include <iostream>
#include <vector>int main() {std::vector<int> vec = { 1,2,3,4,5,6,7,8,9,10 };std::cout << "元素数量:" << vec.size() << std::endl;std::cout << "容量大小:" << vec.capacity() << std::endl;vec.clear();vec.shrink_to_fit();std::cout << "元素数量:" << vec.size() << std::endl;std::cout << "容量大小:" << vec.capacity() << std::endl;return 0;
}

使用swap()交换之后对临时对象进行释放空间,从而达到减小容量。

#include <iostream>
#include <vector>int main() {std::vector<int> vec = { 1,2,3,4,5,6,7,8,9,10 };std::cout << "元素数量:" << vec.size() << std::endl;std::cout << "容量大小:" << vec.capacity() << std::endl;{std::vector<int> vec1;vec1.swap(vec);std::cout << "vec元素数量:" << vec.size() << std::endl;std::cout << "vec容量大小:" << vec.capacity() << std::endl;std::cout << "vec1元素数量:" << vec1.size() << std::endl;std::cout << "vec1容量大小:" << vec1.capacity() << std::endl;std::cout << "vec1的内容:" << std::endl;for (int i = 0; i < vec1.size(); i++) {std::cout << vec1[i] << " ";}}return 0;
}

示例运行结果:

删除和插入元素:

push_back和pop_back:

使用pop_back()函数时,尽量先进性判空,避免对一个元素为空的容器进行删除操作。

#include <iostream>
#include <vector>int main() {std::vector<int> vec;for (int i = 0; i < 10; i++) {vec.push_back(i);}for (int i = 0; i < vec.size(); i++) {std::cout << vec[i] << " ";}std::cout << std::endl;std::cout << "元素数量:" << vec.size() << std::endl;std::cout << "容量大小:" << vec.capacity() << std::endl;std::cout << "删除操作:" << std::endl;while (!vec.empty()) {vec.pop_back();}std::cout << "元素数量:" << vec.size() << std::endl;std::cout << "容量大小:" << vec.capacity() << std::endl;return 0;
}

示例运行结果:

insert和erase、clear:

erase()函数进行删除之前,尽量先进行判空操作,避免对一个元素为空的容器进行删除操作。

#include <iostream>
#include <vector>int main() {std::vector<int> vec = { 1,2,3,4,5,6,7,8,9,10 };vec.erase(vec.begin(), vec.begin() + 4);std::cout << "删除之后的结果展示:" << std::endl;for (int i = 0; i < vec.size(); i++) {std::cout << vec[i] << " ";}std::cout << std::endl;vec.insert(vec.begin(), 0);std::cout << "插入之后的结果展示:" << std::endl;for (int i = 0; i < vec.size(); i++) {std::cout << vec[i] << " ";}std::cout << std::endl;vec.clear();std::cout << "删除所有数据元素:" << std::endl;std::cout << "元素数量:" << vec.size() << std::endl;return 0;
}

示例运行结果:

访问首元素和尾元素和排序、翻转:

foront():访问首元素值。

back():访问尾元素值。

访问首元素和尾元素之前先对容器进行判空,避免未定义行为。

reverse():对容器进行翻转,头文件是<algorithm>,也可以指定范围内的元素进行翻转,参数1起始位置,参数2终止位置。

sort()函数需要包含头文件<algorithm>。

greater<int>():需要包含头文件<functional>,也可以使用lamda表达式,进行函数重写之后按照新的规则进行排序。

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>int main() {std::vector<int> vec = { 1,2,3,4,5,6,7,8,9,10 };std::cout << "首元素:" << vec.front() << std::endl;std::cout << "尾元素:" << vec.back() << std::endl;std::reverse(vec.begin(), vec.end());std::cout << "翻转之后的结果:" << std::endl;for (int i = 0; i < vec.size(); i++) {std::cout << vec[i] << " ";}std::cout << std::endl;sort(vec.begin(), vec.end());std::cout << "升序排序之后的结果:" << std::endl;for (int i = 0; i < vec.size(); i++) {std::cout << vec[i] << " ";}std::cout << std::endl;sort(vec.begin(), vec.end(), std::greater<int>());std::cout << "降序排序之后的结果:" << std::endl;for (int i = 0; i < vec.size(); i++) {std::cout << vec[i] << " ";}return 0;
}

示例运行结果:

查找:

使用find()函数进行查找。使用find()函数需要包含头文件<algorithm>。

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>int main() {std::vector<int> vec = { 1,2,3,4,5,6,7,8,9,10 };auto it = std::find(vec.begin(), vec.end(), 6);if (it != vec.end()) {std::cout << "找到目标值" << std::endl;}else {std::cout << "没有找到目标值" << std::endl;}return 0;
}

示例运行结果:

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

相关文章:

  • 如何在iis下建设网站域名防红短链接生成
  • 想自己做衣服上哪个网站学地方门户网站的推广
  • 合肥网站seo技术重庆公司名字
  • 58同城网站建设规划网站运营推广
  • 眼科医院网站做竞价带来的询盘量建立网站第一步怎么做
  • 经典网站设计作品做网站要实名认证吗
  • 百度关键词竞价价格查询山东seo推广平台
  • 建设专业网站wordpress 增加 SEO
  • 网站域名是不是网址wordpress 调用菜单
  • 做网站能赚到钱吗网站最佳颜色搭配
  • 山西推广型网站开发青浦人才网官网
  • 网站建设方案如何写网站域名备案系统
  • 做网站和app多少费用纺织行业网站怎么做
  • 网站建设 免费视频广西住房城乡建设厅网站首页
  • 一站式建设python做网站模板
  • 怎么创建网站快捷方式网站广告文案
  • 开发商城网站开发wordpress创建导航
  • 昆明网站建设外包dede模板打网站显示栏logo
  • 网站风格主要包括怎么做一个网站多少钱
  • 企业网站建设实训小结制作一个app
  • 全国教育平台网站建设西安建设网站平台
  • 网站备案信息核验单如何根据网址攻击网站
  • 中国外贸公司排名分析网站推广和优化的原因
  • 中国做类似 esty的网站微信登陆wordpress
  • 51个人网站怎么打开网站开启gzip
  • 化妆网站建设的目的广西建设信息网
  • 哪里教做网站的静态网页做的网站怎么发到网上
  • 自应式网站443是端口网站建设
  • 经营范围 网站建设wordpress主题、
  • 成都网站开发企业ic千库网