| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2286 人关注过本帖
标题:容器类中reserve()的用法、作用?
只看楼主 加入收藏
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
 问题点数:0 回复次数:5 
容器类中reserve()的用法、作用?

比如vector中

vector<classA> List; //classA 是一个类类型
List.reserve(4); //什么作用???不用这个函数有什么不妥?
//和resize()有什么区别??

搜索更多相关主题的帖子: reserve 容器 用法 
2007-03-22 22:25
江南孤峰
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-11-8
收藏
得分:0 

找STL查看一下

2007-03-23 11:06
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
找的到就不问了!

Fight  to win  or  die...
2007-03-24 14:45
dlcdavid
Rank: 3Rank: 3
来 自:成都
等 级:新手上路
威 望:6
帖 子:193
专家分:0
注 册:2005-12-23
收藏
得分:0 

运行一下就行了

[QUOTE]
#include <iostream>
#include <vector>
#include <string>
using namespace std;

void print_size(vector<int> &);

int main()
{
vector<int> ivec(4);
cout<<"size为当前元素数量、capacity为当前空间总量\n";
print_size(ivec);
ivec.push_back(0);
print_size(ivec);
while(ivec.size()!=ivec.capacity())
ivec.push_back(0);
ivec.push_back(0);
print_size(ivec);
cout<<"可看出每当容器必须分配空间时,它加倍当前容量\n";
//测试reserve\resize
ivec.resize(0);
print_size(ivec);
cout<<"可看出resize清空了所有元素,空间总量没变\n";
ivec.reserve(50);
print_size(ivec);
cout<<"可看出reserve设置了空间总量\n";
//装满容器
while(ivec.size()!=ivec.capacity())
ivec.push_back(0);
print_size(ivec);
cout<<"装满容器后并没有重新分配空间\n我们再加一个元素上去\n";
ivec.push_back(0);
print_size(ivec);
cout<<"重复刚才的过程\n";
while(ivec.size()!=ivec.capacity())
ivec.push_back(0);
ivec.push_back(0);
print_size(ivec);
cout<<"\n\n最后reserve并不是定义了一种分配策略"
<<"\n而是定义了当前的空间总量" <<endl;
return 0;
}

void print_size(vector<int> &ivec)
{
cout<<"size: " <<ivec.size()
<<" capacity: " <<ivec.capacity()
<<endl;
}
[/QUOTE]


[此贴子已经被作者于2007-3-24 14:49:20编辑过]


为了C++,我放弃了课本
为了高考,我又放弃了C++
现在而今眼目下,我能做什么?www.
2007-03-24 14:46
jasonxie
Rank: 1
等 级:新手上路
威 望:2
帖 子:225
专家分:0
注 册:2007-3-19
收藏
得分:0 
拉头!
reserve()把元素个数用作参数,就可以设置vector的最小容量。如果传送给reserve()的值小于当前的容量,容量就保持不变。
resize()是修改容器的大小,reserve()是修改容器的容量。

你是我心内的一首歌,不要只是个过客;在我生命留下一首歌,无论结局会如何.
2007-03-27 20:36
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
OK

Fight  to win  or  die...
2007-03-27 21:30
快速回复:容器类中reserve()的用法、作用?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017438 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved