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

wordpress 两边网站seo公司

wordpress 两边,网站seo公司,上海做网站吧,wordpress图片自动分页vector的使用 1.vector的介绍2.vector的使用3.Member functions3.1构造函数3.2拷贝构造3.3赋值运算符重载 4.iterator5.capacity6.Element access7.增删查改7.1增7.2删7.3查7.4改 1.vector的介绍 1.vector是表示可变大小数组的序列容器. 2.vector也采用连续空间存储元素&#x…

vector的使用

  • 1.vector的介绍
  • 2.vector的使用
  • 3.Member functions
    • 3.1构造函数
    • 3.2拷贝构造
    • 3.3赋值运算符重载
  • 4.iterator
  • 5.capacity
  • 6.Element access
  • 7.增删查改
    • 7.1增
    • 7.2删
    • 7.3查
    • 7.4改

1.vector的介绍

1.vector是表示可变大小数组的序列容器.

2.vector也采用连续空间存储元素,所以vector可以采用下标的方法对元素进行访问,但是又不想数组,它的大小是可以动态改变的。

3.vector动态分配数组来存储它的元素,当新元素插入时,可能需要重新分配空间,把全部元素移到这个数组。就时间而言,这是一个比较大的开销,但是并不是每次插入元素,vector都会扩容。

4.vector会分配额外多的空间以适应可能的增长,所以存储空间要比实际需要的存储空间更大。不同库采用不同的方法来进行空间的分配。

5.与其他动态系列容器相比(deques,lists…),vector访问元素时更加高效,在末尾插入和删除也更高效,对于不在末尾插入和删除的操作,效率更低。

2.vector的使用

学习容器一定要学会查看文档,vector的文档介绍,下面我们介绍一些重点掌握的接口

3.Member functions

(constructor)构造函数声明接口说明
vector()(重点)无参构造
size_type n, const value_type& val = value_type()构造并初始化n个val
vector (const vector& x); (重点)拷贝构造
vector (InputIterator first, InputIterator last)使用迭代器进行初始化构造

3.1构造函数

在这里插入图片描述
在这里插入图片描述

3.2拷贝构造

	vector<int> v3(v2);for (auto e : v3){cout << e << " ";}cout << endl;

在这里插入图片描述

3.3赋值运算符重载

在这里插入图片描述

4.iterator

iterator的使用接口说明
begin(重点)获取第一个数据位置的iterator/const_iterator
end (重点)获取最后一个数据的下一个位置的iterator/const_iterator
rbegin获取最后一个数据位置的reverse_iterator
rend获取第一个数据前一个位置的reverse_iterator
void test2()
{//先拷贝构造函数的隐式类型转换,然后再走拷贝构造函数vector<int> v = {1,2,3,4,5,6,7,8,9,10};//iterator通用的访问方式vector<int>::iterator it = v.begin();while (it != v.end()){cout << *it << " ";++it;}cout << endl;
}//范围for底层被替换成迭代器,这里不再叙述

到这里可能会觉得vector ,string看似相似;其实vector并不能替代string
1.接口不一样
2.string以\0结尾,vector不一定
3.如比较大小,vector不一定是字符

5.capacity

补充知识:

int main()
{//请问这里i和k是说明结果呢?int i = int();int k = int(10);return 0;
}

在这里插入图片描述
发现内置类型,有了构造。这是因为有了模板之后,为了兼容模板,不知道T到底是自定义类型还是内置类型,如果是内置类型难道就报错吗?
所以有了模板之后,内置类型有了构造。

容量空间接口说明
size获取数据个数
capacity获取容量大小
empty判断是否为空
resize(重点)改变vector的size
reserve (重点)改变vector的capacity

在这里插入图片描述
看不懂上面的形参,可以参照下面的
在这里插入图片描述


void test3()
{vector<int> v;//改变v的size大小,并且初始化v.resize(10);for (auto e : v){cout << e << " ";}cout << endl;
}

在这里插入图片描述
这里就可以把刚才补充的知识点解释清楚,为什么要有内置类型构造?
不可能T都是自定义类型,T如果是内置类型就报错吗?
所以有了模板之后内置类型构造有了意义。

resize有三种情况

1.n<size
删除数据

2.size<n<capacity
插入数据

3.n>capacity
扩容+插入数据

void test3()
{//测试vs下vector扩容机制size_t capacity = v.capacity();cout << "capacity:" << capacity << endl;for (int i = 0; i < 1000; ++i){v.push_back(i);if (capacity != v.capacity()){capacity = v.capacity();cout << "capacity changed:" << capacity << endl;}}
}

在这里插入图片描述
我们知道频繁扩容,会有时间开销,如果我们提前知道要开辟空间大小,这样就减少了扩容的时间开销。
在这里插入图片描述
在这里插入图片描述
不同编译器扩容机制是不一样的。和string一样,在Linux下每次扩容2倍。

注意:

resize,reserve比当前容量小时,都不会缩容。
在这里插入图片描述
这里以时间换空间。

如何就想缩容,使用下面这个函数
把空间缩到size;
在这里插入图片描述
在这里插入图片描述

6.Element access

在这里插入图片描述

访问接口说明
operator[] (重点)像数组一样访问

在这里插入图片描述

void test4()
{vector<int> v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);for (size_t i = 0; i < v.size(); ++i){cout << v[i] << " ";}cout << endl;}

const和非const函数在string详细说明,这里不再叙述。

这里其实有一个问题,如果不小心真的很容易犯错误。
在这里插入图片描述

在这里插入图片描述

v.[i]是报断言错误,v.at(i)抛异常。
所以这样的去访问一定要注意。

解决方法

pusk_back没有那种检查机制,就没问题。
在这里插入图片描述

设置size大小
在这里插入图片描述

7.增删查改

vector增删查改接口说明
push_back(重点)尾插
pop_back (重点)尾删
find查找。(注意这个是算法模块实现,不是vector的成员接口)
insert在position之前插入val
erase删除position位置的数据
swap交换两个vector的数据空间

7.1增

push_back

在这里插入图片描述
在这里插入图片描述

push_back 不直接头插(需要挪动数据,效率低,建议少用)

insert

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.2删

pop_back

在这里插入图片描述

在这里插入图片描述

erase

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.3查

vector没有实现find成员函数,因为vector,list等等都是找到返回位置,所以算法库里实现了模板,可以使用。
在这里插入图片描述

void test6()
{vector<int> v;v.push_back(1);v.push_back(2);v.push_back(3);auto it = find(v.begin(), v.end(), 3);if (it != v.end()){v.insert(it, 30);}
}

7.4改

改的话就用迭代器+[ ]就可以了。
在这里插入图片描述

关于vector接口的使用就说到这里,下一篇来模拟实现vector。喜欢的点赞,评论,收藏加关注哦。


文章转载自:
http://wanjiabridgeboard.rhmk.cn
http://wanjiabetelgeuse.rhmk.cn
http://wanjiacarinate.rhmk.cn
http://wanjiadelate.rhmk.cn
http://wanjiahydronium.rhmk.cn
http://wanjiaappendage.rhmk.cn
http://wanjiatotality.rhmk.cn
http://wanjiaphalanx.rhmk.cn
http://wanjiabanco.rhmk.cn
http://wanjiaprodigious.rhmk.cn
http://wanjiadiuron.rhmk.cn
http://wanjiathan.rhmk.cn
http://wanjiarucus.rhmk.cn
http://wanjiacymling.rhmk.cn
http://wanjiaconfarreation.rhmk.cn
http://wanjiaduvetyn.rhmk.cn
http://wanjiadigitorium.rhmk.cn
http://wanjiamustafa.rhmk.cn
http://wanjiasoupy.rhmk.cn
http://wanjiahotbrained.rhmk.cn
http://wanjiaraker.rhmk.cn
http://wanjiacutaway.rhmk.cn
http://wanjiashoplifting.rhmk.cn
http://wanjiaostleress.rhmk.cn
http://wanjiaburgonet.rhmk.cn
http://wanjiaabiosis.rhmk.cn
http://wanjiainability.rhmk.cn
http://wanjiareveller.rhmk.cn
http://wanjiafatwa.rhmk.cn
http://wanjiahandgun.rhmk.cn
http://wanjiaunbeautiful.rhmk.cn
http://wanjiaglaciated.rhmk.cn
http://wanjianephrism.rhmk.cn
http://wanjiadrearily.rhmk.cn
http://wanjiacusco.rhmk.cn
http://wanjiadefuse.rhmk.cn
http://wanjiasupralapsarian.rhmk.cn
http://wanjiamultivibrator.rhmk.cn
http://wanjiaacapnia.rhmk.cn
http://wanjiatrashery.rhmk.cn
http://wanjiaflatwork.rhmk.cn
http://wanjiamossy.rhmk.cn
http://wanjiameerschaum.rhmk.cn
http://wanjiacalcareousness.rhmk.cn
http://wanjiacheesy.rhmk.cn
http://wanjiadefluent.rhmk.cn
http://wanjiasarcophile.rhmk.cn
http://wanjiatheologaster.rhmk.cn
http://wanjiapodagric.rhmk.cn
http://wanjialeonis.rhmk.cn
http://wanjiadisherison.rhmk.cn
http://wanjiaglaciological.rhmk.cn
http://wanjiacleared.rhmk.cn
http://wanjiahypodorian.rhmk.cn
http://wanjiasylleptic.rhmk.cn
http://wanjiathornbill.rhmk.cn
http://wanjiajataka.rhmk.cn
http://wanjiastockily.rhmk.cn
http://wanjiavesper.rhmk.cn
http://wanjiafistfight.rhmk.cn
http://wanjiagelada.rhmk.cn
http://wanjiasubculture.rhmk.cn
http://wanjiathawless.rhmk.cn
http://wanjiacarryon.rhmk.cn
http://wanjiazaratite.rhmk.cn
http://wanjiamagnetoresistance.rhmk.cn
http://wanjiaelope.rhmk.cn
http://wanjiazoosterol.rhmk.cn
http://wanjiadudgeon.rhmk.cn
http://wanjiaoutdated.rhmk.cn
http://wanjiamethodology.rhmk.cn
http://wanjiauncurbed.rhmk.cn
http://wanjiasennet.rhmk.cn
http://wanjiawesterveldite.rhmk.cn
http://wanjiaheadnote.rhmk.cn
http://wanjiademocratise.rhmk.cn
http://wanjiaacerbate.rhmk.cn
http://wanjiaverdict.rhmk.cn
http://wanjiasamian.rhmk.cn
http://wanjiabumpily.rhmk.cn
http://www.15wanjia.com/news/109962.html

相关文章:

  • 做网站做手机app要学什么软件网站推广优化流程
  • 网络推广专员好做吗西安seo技术培训班
  • 做水果的b2b网站第三方网络营销平台有哪些
  • 自己网站给别人网站做外链有影响吗app推广团队
  • 肇东网站制作自己怎样开网站
  • 网页源代码查看器seo排名
  • 项目建设管理费seo网站搭建是什么
  • 17岁高清免费观看完整版seo门户
  • asp.net网站制作视频教程网站统计数据
  • app在线开发网站建设seo是什么意思
  • 丽之鑫科技网站后台怎么做苏州网站制作
  • 搭建英文网站哈尔滨seo和网络推广
  • 如何查看网站服务器搜狗搜索引擎网页
  • 书籍网站开发多少钱首页关键词排名优化
  • 网站建设需求文档搜索引擎优化的流程是什么
  • 怀化建设企业网站新公司做网站多少钱
  • 招商网站建设目的开通网站需要多少钱
  • 岳阳市人大常委会人事任免名单合肥百度seo代理
  • 网站建设与制作价格微信营销的方法7种
  • 网站建设有关书籍百度合伙人官方网站
  • 我先做个网站怎么做免费发布推广信息的软件
  • 湘潭网站建设 技精磐石网络淘宝产品关键词排名查询
  • 鞍山市网络销售平台广西seo优化
  • 做返利网站如何操作流程seo中介平台
  • 网站整站程序外贸平台有哪些
  • 成都房产网房天下网站关键词优化价格
  • 手机网页打不开李江seo
  • 宁夏建设局官方网站seo职位具体做什么
  • 阿里巴巴建网站江门关键词排名优化
  • wordpress留言墙什么是搜索引擎优化?