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

做网站都要掌握什么软件网站维护要求

做网站都要掌握什么软件,网站维护要求,页面设计时最好用多少种颜色,wex5网站开发目录 1.vector是什么? 2.vector的使用 2.1vector的构造函数 2.2vector iterator 的使用 2.3vector 空间增长问题 2.4vector的增删查改 1.vector是什么? 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样,vector也 采用连续的存储…

目录

1.vector是什么?

2.vector的使用

2.1vector的构造函数

2.2vector iterator 的使用

 2.3vector 空间增长问题

2.4vector的增删查改


1.vector是什么?

1. vector是表示可变大小数组的序列容器。
2. 就像数组一样,vector也 采用连续的存储空间来存储元素 。也就是意味着可以采用下标对vector的元素 进行访问,和数组一样高效。但是又不像数组, 它的大小是可以动态改变的,而且它的大小会被容器自动处理
3. 本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。就时间而言,这是一个相对代价高的任务,因为每当一个新的元素加入到容器的时候,vector并不会每次都重新分配大小。
4. vector分配空间策略:vector会分配一些额外的空间以适应可能的增长,因为存储空间比实际需要的存储空间更大。不同的库采用不同的策略权衡空间的使用和重新分配。但是无论如何,重新分配都应该是对数增长的间隔大小,以至于在末尾插入一个元素的时候是在常数时间的复杂度完成的。
5. 因此,vector占用了更多的存储空间,为了获得管理存储空间的能力,并且以一种有效的方式动态增长。
6. 与其它动态序列容器相比(deque, list and forward_list),vector在访问元素的时候更加高效,在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作,效率更低。比起list和forward_list统一的迭代器和引用更好。
7.vector是 C++ 标准模板库(STL)里的一个类模板,借助模板参数能够生成不同类型的类。

oid test_vector1()
{vector<string> v;string name1("张三");v.push_back(name1);v.push_back(string("张三"));//匿名对象v.push_back("张三");//在 C++ 中,单参数的构造函数默认支持隐式类型转换。vector<vector<int>> vv;//相当于二维数组
}

2.vector的使用

vector学习时一定要学会查看文档:这是vector文档的链接  https://cplusplus.com/reference/vector/vector/https://cplusplus.com/reference/vector/vector/

下面是对vector重要接口的介绍。

2.1vector的构造函数

构造函数声明
接口说明
vector()
无参构造
vector size_type n, const value_type& val = value_type()
构造并初始化 n val
vector (const vector& x)
拷贝构造
vector (InputIterator first, InputIterator last)
使用迭代器区间初始化
int TestVector2()
{vector<int> first;                                // 空参构造vector<int> second(4, 100);                       // 初始化4个100vector<int> third(second.begin(), second.end());  // 迭代器区间初始化vector<int> fourth(third);                       // 拷贝构造// 利用迭代器区间初始化不仅仅可以用vector的迭代区间也可以用其他容器的迭代器区间int myints[] = { 16,2,77,29 };vector<int> fifth(myints, myints + sizeof(myints) / sizeof(int));string str("hello world");vector<char> sixth(str.begin(), str.end());return 0;
}

2.2vector iterator 的使用

iterator 的使用
接口说明
begin+end
获取第一个数据位置的迭代器 , 获取最后一个数据的下一个位置
的迭代器
rbegin + rend
获取最后一个数据位置的迭代器 ,获取第一个数据前一个位置的迭代器

有了迭代器就可以和C++库里面实现的一些算法结合在一起进行使用了 。

 

例如C++库里实现的sort和find算法,所传参数都是迭代器的区间。

#include<algorithm>
#include<vector>
using namespace std;
int main()
{int a[] = { 16,2,77,29 };vector<int> v5(a, a+4);//默认降序  >sort(v5.begin(),v5.end());//升序  <sort(v5.begin(), v5.end(), greater<int>());//greater<int>匿名对象比较器 int a1[] = { 16,2,77,29,3,33,43,2 };vector<int> v1(a1, a1 + sizeof(a)/sizeof(int));//删除其中的3vector<int>::iterator pos=find(v1.begin(),v1.end(),3);if(pos != v1.end()){v1.erase(pos);}return 0;
}

 2.3vector 空间增长问题

容量空间
接口说明
size
获取数据个数
capacity
获取容量大小
empty
判断是否为空
resize
改变 vector size
reserve
改变 vector capacity
void TestVector3()
{v1.reserve(10);for (size_t i = 0; i < 10; i++){v1[i] = i;}//上述的代码是典型的错误,以为预留好了空间就可以直接访问,这是错误的。//reserve预留空间的目的是为了减少扩容,并不会修改size,上面相等于越界访问。//正确应该是这样写v1.reserve(10);for (size_t i = 0; i < 10; i++){v1.push_back(i);}//或者v1.resize(10);for (size_t i = 0; i < 10; i++){v1[i] = i;}}

2.4vector的增删查改

vector 增删查改
接口说明
push_back
尾插。
pop_back
尾删。
find
查找。(注意这个是算法模块实现,不是 vector 的成员接口)
insert
position 之前插入 val。
erase
删除 position 位置的数据。
swap
交换两个 vector 的数据空间。(vector的成员函数中有swap)
operator[] 
像数组一样访问
void test_vector5()
{int a[] = { 16,2,77,29,3,33,43,3,2,3,3,2 };vector<int> v1(a, a + sizeof(a)/sizeof(int));for (auto e : v1){cout << e << " ";}cout << endl;// 头删v1.erase(v1.begin());for (auto e : v1){cout << e << " ";}cout << endl;// 头插 v1.insert(v1.begin(), 100);for (auto e : v1){cout << e << " ";}cout << endl;// 删除第3个数据v1.erase(v1.begin()+2);for (auto e : v1){cout << e << " ";}cout << endl;// 删除3,但是不知道3在哪个位置,怎么办?//vector<int>::iterator pos = find(v1.begin(), v1.end(), 3);auto pos = find(v1.begin(), v1.end(), 3);/*if (pos != v1.end()){v1.erase(pos);}*/// 删除所有的3 -- 涉及迭代器失效!while(pos != v1.end()){v1.erase(pos);//pos = find(pos+1, v1.end(), 3); 这是错的,迭代器会失效pos = find(v1.begin(), v1.end(), 3);}for (auto e : v1){cout << e << " ";}cout << endl;//assign(size_type count, const T& value)//将 vector 中的元素替换为 count 个值为 value 的元素。v1.assign(10, 1);for (auto e : v1){cout << e << " ";}cout << endl;
}


文章转载自:

http://YHZr06Xp.pqnkg.cn
http://vSFUsJT3.pqnkg.cn
http://zFcq4BTr.pqnkg.cn
http://OxlXay6O.pqnkg.cn
http://0mchm03t.pqnkg.cn
http://ZnVGpvKB.pqnkg.cn
http://zTL6uwxY.pqnkg.cn
http://KsrPbogF.pqnkg.cn
http://inRVGYnm.pqnkg.cn
http://nVONfjfK.pqnkg.cn
http://DnekiOaw.pqnkg.cn
http://nFunPkP8.pqnkg.cn
http://gwusmNuZ.pqnkg.cn
http://XHqTnxKc.pqnkg.cn
http://z97p7Ata.pqnkg.cn
http://Zdnwn4wt.pqnkg.cn
http://jWlJECHW.pqnkg.cn
http://qXBNwFI4.pqnkg.cn
http://mNPGLqBX.pqnkg.cn
http://TuaWSgse.pqnkg.cn
http://k9p1G3Y9.pqnkg.cn
http://kwV6LSrG.pqnkg.cn
http://klw6ywKZ.pqnkg.cn
http://rNPLGukR.pqnkg.cn
http://P85F8D4x.pqnkg.cn
http://8Zxg6Nwz.pqnkg.cn
http://K2ZqQreo.pqnkg.cn
http://HDWlGtMB.pqnkg.cn
http://hIkZnvCQ.pqnkg.cn
http://fZHWcxVa.pqnkg.cn
http://www.dtcms.com/wzjs/779157.html

相关文章:

  • 咸宁网站建设个人网站引导页源码
  • asp.net网站和空网站有什么区别手机网站如何建站
  • 信息网站建设汇报wordpress页面链接如何修改
  • 电影网站怎么做友情链接上海的广告公司有哪些
  • 阿里云官方网站 icp代备案管理系统wordpress添加keywords
  • 搭建网站需要钱吗做优秀网站
  • 怎样安装网站模板网页图片下载插件
  • netcompont网站建站wordpress 更改中文
  • 公司企业网站教你如何建设网站阿里去
  • 网站开发软硬件条件做销售用的免费发布信息网站
  • 模板网站很牛苏州建设银行官方网站
  • 山东建设执业资格注册中心网站推广策略包括哪些内容
  • 湖北阳新县建设局网站众筹网站搭建
  • 网站制作教程 pdf下载百度网站收入提交
  • 移动网站设计方案网站开发好要租服务器吗
  • 有人用我的企业做网站帮做网站的网站
  • 企业网站模板 下载 论坛软件项目管理的主要内容有哪些?
  • 昆山h5网站建设深圳专业做网站哪家专业
  • 做一个京东这样的网站需要多少钱建设网站合同范本
  • 东营网站制作做推广必须知道的网站吗
  • 官方网站制作思路韩国美食做视频网站有哪些
  • 二手车网站制作dnf可以去哪个网站做代练
  • 做冻品的网站企业门户网站服务器
  • 网站备案在哪查申请一个域名多少钱
  • 电子商务网站规划的原则有哪些湖南省建设人力资源网
  • 自己做视频网站怎么让加载速度变快网页版微信可以发朋友圈吗
  • 原型图网站phpstudy配置wordpress
  • 彩票网站搭建wordpress客户端开发
  • 做什么网站赚钱最快国旗做网站按钮违法吗
  • 建立网站需要什么技术荥阳网站优化公司