返回

上海达内教育

c++ vector 使用效率问题

java学习网更新时间:2021-07-15 浏览:368

1. vector中的erase方式 高效率是很低。

由于为了更好地维持vector中原素在存储空间中的持续性,在删掉某一原素以后,*须将之后的原素先后往前挪动一个部位,均值复杂性为o(n)。

gcc 下erase的完成以下:

iterator erase(iteratorposition)

{

if (position 1 != end())

copy(position 1, finish, position); // 事后原素向前挪动

--finish;

destroy(finish); // 一个释放出来資源的全局性涵数

return position;

}

解决方案:

假如要删除了原素在最后一个部位,则不用挪动别的原素,只*须o(1)的時间花销,根据这类观念,能够完成一种高效率的vector中删掉原素的方式

for(int i=0; i

{

if( some condition )

{

swap( vec[i], vec[vec.size()-1]);

vec.pop_back();

}

else

{

i ;

}

}

2.迭代器应用

vector int_vec;

for( vector::iterator iter = int_vec.begin(); iter != int_vec.end(); iter)

{

}

干万留意要应用 iter 不可以应用iter

iter 是先复制一份值,再开展 ,高效率很低

相关资讯

c++ vector 使用效率问题
2021-07-15 368
1. vector中的erase方式 高效率是很低。由于为了更好地维持vector中原素在存储空间中的持续性,在删掉某一原素以后,*将之后...
云计算技术与应用学什么东西
2021-07-16 312
云计算技术与应用是学什么的?众所周知,云计算技术是当前的热门技术, 云计算专*技*人才是香饽饽,计划学习云计算技术与应用...
初学者适合学习哪些编程语言
2021-07-15 309
许多同学想改行程序编写,可是那么多的计算机语言究竟该怎么选呢?头痛~如果你是一名具备创新性的开发人员或是想变成一名具备展望工作能力的开发人员得话,那麼,你应该最少在**是的计算机语言中挑选一个,相近 Python, JavaScript, C#, C++, PHP, Java, 或是 go...
java技术有哪些优点优势
2021-07-15 300
Java技术性有以下优势:简易、面向对象编程、分布式系统、表述实行、鲁棒性、安全性、系统架构保持中立、生命期、性能卓越、线程同步及其动态...
Java未来发展的趋势
2021-06-15 295
没有Java,甚至不会有大数据的大发展,Hadoop本身就是用Java编写的。当你需要在运行MapReduce的服务器集群上发布新功能时,你需...
学什么技术有前途 Java怎么样
2021-07-19 259
如今正是互联网信息时代,随着时代的变迁肯定会发展的越来越好,而Java编程语言是最于我们生活息息相关的,用处范围广泛,比如:...
北京达内教学怎么样 北京达内教育学习环境好吗
2021-07-15 250
日给大伙儿分享一些有关达内教育学习中心的相片,了解一下达内教育学习中心自然环境怎样。下边就跟随我一起来吧...
学Java可以做哪些职位
2021-06-11 245
Java是时下非常流行的语言,这意味着有很多很多不同的工作可供选择。Java软件工程师入行1-3年,*已达到10-15万,而且在IT行业...

相关课程

栏目导航