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

如何做logo模板下载网站广州万户网络技术有限公司深圳分公司

如何做logo模板下载网站,广州万户网络技术有限公司深圳分公司,长治网站制作公司,如何向雅虎提交网站一、标准库中的vector类 1.vector的介绍 1. vector是表示可变大小数组的序列容器 #xff0c; 和数组一样#xff0c;vector可采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问#xff0c;和数组一样高效。但是又不像数组#xff0c;它的大…一、标准库中的vector类 1.vector的介绍 1. vector是表示可变大小数组的序列容器 和数组一样vector可采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问和数组一样高效。但是又不像数组它的大小是可以动态改变的而且它的大小会被容器自动处理。 2. 本质讲vector使用动态分配数组来存储它的元素。当新元素插入时候这个数组需要被重新分配大小以增加存储空间。其做法是分配一个新的数组然后将全部元素移到这个数组。就时间而言这是一个代价相对来说高的任务因为每当一个新的元素加入到容器的时候vector并不会每次都重新分配大小。 3. vector分配空间策略vector会分配一些额外的空间以适应可能的增长因为存储空间比实际需要的存储空间更大。不同的库采用不同的策略权衡空间的使用和重新分配。但是无论如何重新分配都应该是对数增长的间隔大小以至于在末尾插入一个元素的时候是在常数时间的复杂度完成的。 4. 因此vector占用了更多的存储空间为了获得管理存储空间的能力并且以一种有效的方式动态增长。 5. 与其它动态序列容器相比deque, list and forward_list vector在访问元素的时候更加高效在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作效率更低。比起list和forward_list统一的迭代器和引用更好  我们知道STL学习的三步能用明理能扩展因而我们的学习也是这个流程 2.vector的使用 记住学stl一定一定要学会看文档vector文档.vector在实际中非常的重要在实际中我们熟悉常 见的接口就可以。 2.1 常用的构造函数 vector(); vector类的默认构造函数构造一个没有元素的空容器 例如 void test() {vectorint v; } 都需要引用头文件vector vector(size_type n, const value_type val value_type()); 构造一个vector类对象并用n个val初始化 例如: void test() {//vectorint v;vector int v(5, 0);for (auto i : v){cout i ;} } int main() {test();return 0; } 运行结果: void test() {//vectorint v;vector int v(5, 2);for (auto i : v){cout i ;} } int main() {test();return 0; } 运行结果: 拷贝构造函数 vector(const vector x); 对于一个已有的vector容器进行拷贝,并生成一个新的容器 例如: void test() {//vectorint v;vector int v1(5, 2);vector int v2(v1);for (auto i : v2){cout i ;} } 运行结果:v 使用迭代器的初始化构造 Templateclass InputIteratorvector(InputIterator first, InputIterator last); 例如: void test() {//vectorint v;vector int v1(5, 2);//vector int v2(v1);vector int v2(v1.begin(),v1.end()-1);for (auto i : v2){cout i ;} } 运行结果v: 2.2 容量操作的接口 1.size size_type size() const; 获取有效元素的个数 例如: void test() {//vectorint v;vector int v1(5, 2);//vector int v2(v1);/*vector int v2(v1.begin(),v1.end()-1);*///for (auto i : v2)//{// cout i ;//}cout v1.size(); } int main() {test();return 0; } 运行结果: 2.capacity 获取容量大小 size_type capacity() const; 例如: void test() {vector int v1(5, 2);cout v1.capacity(); } 运行结果: 3.empty 判断容器是否为空 bool empty() const; 例如: ​ void test() {vector int v1(5, 2);vector int v2;cout v1.empty() endl;cout v2.empty() endl; }​ 运行结果: 4.resize void resize (size_type n, value_type val value_type()); 将有效元素的个数修改为n并且如果n大于原来的size多出来的地方用val填充 如果没有给出val就用0填充 例如: void test() {vector int v;cout v.size() endl;v.resize(20);cout v.size() endl;for (auto i : v){cout i ;}cout endl;v.resize(30);cout v.size() endl;for (auto i : v){cout i ;}cout endl;v.resize(10);cout v.size() endl;for (auto i : v){cout i ;} } 运行结果: 5.max_size size_type max_size() const; 返回最大大小 例如: ps:这里push_back是尾插 void test1() {vector int v;for (int i 0; i 100; i) v.push_back(i);cout v.size() endl; }运行结果: 6.reserve​​​​​ void reserve (size_type n); 改变容量大小 例如: void test1() {vector int v;cout v.capacity() endl;v.reserve(10);cout v.capacity() endl; } 运行结果: 2.3vector的访问及其遍历 1.operator[] reference operator[] (size_type n); const_reference operator[] (size_type n) const; 用下标直接访问 例如: void test() {vector int v(5,2);cout v[2] endl; } 运行结果: 因此我们也可以通过下标去遍历,这里就不多作演示 2.迭代器 这里大体和string类差不多 iterator begin();const_iterator begin() const;iterator end();const_iterator end() const; 迭代器用于获取容器中第一个元素的位置和最后一个元素的下一个位置 例如: ​ void test() {vector int v { 1,2,3,4,5,67,8,9,0,1 };vectorint::iterator it v.begin();while (it ! v.end()){cout *it ;it;} }​ 运行结果: 3.反向迭代器 这个整体和迭代器差不多 reverse_iterator rbegin();const_reverse_iterator rbegin() const;reverse_iterator rend();const_reverse_iterator rend() const; rbegin获取容器中最后一个元素的位置rend获取容器中的第一个元素的前一个位置 例如: ​ void test() {vector int v { 1,2,3,4,5,67,8,9,0,1 };vectorint::reverse_iterator rit v.rbegin();while (rit ! v.rend()){cout *rit ;rit;} }​ 运行结果: 4.at reference at (size_type n); const_reference at (size_type n) const; 返回容器中位置n处的元素的引用 例如: void test() {vector int v { 1,2,3,4,5,67,8,9,0,1 };cout v.at(5) endl;for (size_t i0;iv.size();i){cout v.at(i) ;} } 运行结果: 5.back reference back(); const_reference back() const; 返回容器中最后一个元素的引用 例如: void test() {vector int v { 1,2,3,4,5,67,8,9,0,123 };cout v.back() endl; } 运行结果: 6.front reference front(); const_reference front() const; 返回容器中第一个元素的引用 例如: void test() {vector int v { 1,2,3,4,5,67,8,9,0,123 };cout v.front() endl; } 运行结果: 2.4vector的增删查改 1.push_back(); void push_back(const value_type val); 从容器尾部插入一个元素 例如 void test() {vector int v { 1,2,3,4,5,67,8,9,0,123 };cout v.back() endl;v.push_back(99999);cout v.back() endl; } 运行结果: 2.pop_back() void test() {vector int v { 1,2,3,4,5,67,8,9,0,123 };cout v.back() endl;v.pop_back();cout v.back() endl; } 运行结果: 3.find() template class InputIterator, class TInputIterator find(InputIterator first, InputIterator last, const T val); 在两个迭代器区间寻找val并返回其所在处的迭代器 例如 void test2() {vectorint v { 1,2,3,4,5,6 };for (auto i : v){cout i ;}cout endl;vectorint::iterator it find(v.begin(), v.end(), 3);*it 30;for (auto i : v){cout i ;}cout endl; } 需要注意的是该函数并非vector的成员函数是标准库中的函数多个容器共用该find函数 4.insert() iterator insert (iterator position, const value_type val); void insert (iterator position, size_type n, const value_type val);template class InputIterator void insert (iterator position, InputIterator first, InputIterator last);在position位置插入元素 例如 void test2() {vectorint v { 1,2,3,4,5,6 };for (auto i : v){cout i ;}cout endl;vectorint::iterator it find(v.begin(), v.end(), 3);v.insert(it, 99999);for (auto i : v){cout i ;}cout endl; } 运行结果: 5.earse() iterator erase (iterator position); iterator erase (iterator first, iterator last); 删除position位置的元素或者 [firstlast) 区间的所有元素 例如 void test2() {vectorint v { 1,2,3,4,5,6 };for (auto i : v){cout i ;}cout endl;vectorint::iterator it find(v.begin(), v.end(), 3);v.erase(it);for (auto i : v){cout i ;}cout endl; } 运行结果: 6.swap() void swap (vector x); 交换两个vector的数据空间 例如 void test3() {vectorint v1 { 1,2,3,4,5,6,7,8,9,0 };vectorint v2 { 0,9,8,7,6,5,4,3,2,1 };v1.swap(v2);for (auto i : v1){cout i ;}cout endl; } 运行结果: 7.assign() template class InputIterator void assign (InputIterator first, InputIterator last); void assign (size_type n, const value_type val); 为vector指定新内容替换其当前内容并修改size 例如 void test2() {vectorint v { 1,2,3,4,5,6 };for (auto i : v){cout i ;}cout endl;v.assign(5, 4);for (auto i : v){cout i ;}cout endl; } 运行结果: 8.clear() void clear(); 从vector中删除所有元素不改变容量大小 例如 void test2() {vectorint v { 1,2,3,4,5,6 };for (auto i : v){cout i ;}cout size: v.size();cout endl;v.clear();for (auto i : v){cout i ;}cout size: v.size();cout endl; }运行结果: 本篇是对vector的初步理解,我们只需知道会用即可 如有错误,欢迎大家在评论区指出。
http://www.tj-hxxt.cn/news/225682.html

相关文章:

  • 网站创建费用商务网站建设需要多少钱
  • 网站系统的建设与管理工作服定制无锡帛裳 服饰实力
  • 网站好友邀请链接生成 php做网站维护有前途吗
  • 做网站会遇到的问题有没有电脑做兼职的网站
  • 企业网站建设湖南岚鸿易企秀h5页面怎么制作
  • 东莞网站营销公司美容类 营销型网站
  • 青岛开发区网站建设哪家好字体中国设计网
  • 网站首页代码红安建设局投诉网站
  • 教做家常菜的视频网站淄博网站快照优化公司
  • 成都网页设计与网站建设成都企业品牌网站建设
  • 校园网站建设促进教学沧州营销软件
  • 最贵网站建设网页制作的目的和意义
  • 做美食介绍的网站员工管理网站模板
  • 网站对图片优化门户网站建站多少钱
  • 重庆专业建网站wordpress修改 id
  • 网站 注册模块怎么做正规网站备案信息表
  • 扬州外贸网站建设wordpress 古风主题
  • 网站建设论文答辩自述网站开发需要兼容到ie几
  • 展厅设计制作网站如何是网站排名上升
  • 化州网站建设公司网站推广策划书目录
  • 怎么查网站是谁建的30天网站建设实录 pdf
  • 网站建设主动型电话销售话术一个网站两个空间
  • 门户网站系统有哪些平台玉溪做网站
  • 海外营销网站建设中天建设集团有限公司第九建设公司
  • 如何攻克房地产网站西地那非最佳吃法
  • 商务局网站建设方案酒店网站html
  • 网站js下载网站建设 推广信息
  • 怎么在网站文本框内做超连接做食品研发都有哪些网站
  • 上海安全建设协会网站freenom申请域名
  • 个人网站域名取名辽宁省工程造价网