社区
C++ 语言
帖子详情
vector 的 resize 和 clear
beyondlwm
2009-04-03 02:03:05
stl的Vector resize(0) 和clear()
哪一个方法的效率高?为什么!
我看底层都调用了erase方法对容器成员进行析构
而resize比clear多用了两次构造和析构用于拷贝构造局部变量..
...全文
1123
7
打赏
收藏
vector 的 resize 和 clear
stl的Vector resize(0) 和clear() 哪一个方法的效率高?为什么! 我看底层都调用了erase方法对容器成员进行析构 而resize比clear多用了两次构造和析构用于拷贝构造局部变量..
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hzhxxx
2010-06-12
打赏
举报
回复
肯定是 clear了
不用太多判断,直接一个一个删除
zhangwuji154
2010-06-12
打赏
举报
回复
我也有相同的疑惑
必成桂
2009-04-03
打赏
举报
回复
看实现就一目了然了。
下面是SGI的两个函数的实现 :
void clear()
{
erase(begin(), end());
}
void resize(size_type new_size)
{
resize(new_size, T());
}
void resize(size_type new_size, const T& x)
{
if (new_size < size())
erase(begin() + new_size, end());
else
insert(end(), new_size - size(), x);
}
就这个实现来说,clear()和resize(0)的效率是一样的. resize(0)只是多了一个判断,和一个size()调用。size()是常量时间的调用。可以忽略不计。
vector的实现大同小异,应该不会差很多。
对于你这个问题,我觉得两者的效率是差不多的。 clear()显然是一个更直接的用法。
damo_xu
2009-04-03
打赏
举报
回复
[Quote=引用 2 楼 beyondlwm 的回复:]
关键在于,有师傅级别的人告诉过我,resize效率比clear高,而现在我又不能联系到他...
[/Quote]
有好多江湖师傅滴。嘿嘿,连我都做过别人的师傅。
PS》csdn是出真正师傅的地方。
猫已经找不回了
2009-04-03
打赏
举报
回复
http://qzone.qq.com/blog/16237059-1237776814
这应该对你有用
beyondlwm
2009-04-03
打赏
举报
回复
关键在于,有师傅级别的人告诉过我,resize效率比clear高,而现在我又不能联系到他...
「已注销」
2009-04-03
打赏
举报
回复
那效率不就已经出结果了吗:而resize比clear多用了两次构造和析构用于拷贝构造局部变量..
C++笔记之
vector
的
resize
()和
clear
()用法
code review! 运行 运行
vector
::
resize
和
clear
的区别
看linux下面的stl源码, 发现stl的
resize
和
clear
区别不大。当
resize
的目标size比当前的size要大的时候, 需要insert到末尾处, 否则就erase到目标大小。 代码为: void
resize
(size_type __new_size, const value_type& __x) { if (__new_size...
C/C++基础
Vector
容器的
clear
, swap,
resize
, reserve,find,count 操作
C/C++基础
Vector
容器的
clear
, swap,
resize
, reserve,find,count 操作
C++中的
vector
:
resize
()、reserve()、
clear
()、shrink_to_fit()、swap()
vector
的
resize
和reserve的区别,还有和内存优化相关的一些函数
浅析
vector
之
clear
、
resize
、reserve方法对size()和capacity()的影响
clear
、
resize
和reserve方法在使用上非常简单,但是需要注意对容器底层的内存空间的影响,特别是使迭代器失效的情况。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章