标题:[求助]vector使用的问题?
只看楼主
vaqeteart
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-4-13
 问题点数:0 回复次数:4 
[求助]vector使用的问题?
vector<int> element;
//怎样给他分配10个元素的空间?(不是一次一次的插入)
//怎样给已经由元素的element重新分配10个元素的空间?(同时覆盖了原来的元素,获得新的大小)
//怎样把另外一个vector列表复制到element中?(同时覆盖了原来的元素,获得新的大小)
搜索更多相关主题的帖子: vector element 元素 空间 
2007-04-13 14:24
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
1)直接vector<int> element(10)
2)resize();
3)直接赋值,或者拷贝构造。或者用循环迭代!

[此贴子已经被作者于2007-4-13 21:48:36编辑过]


Fight  to win  or  die...
2007-04-13 21:44
vaqeteart
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-4-13
得分:0 

1.如果定义一个空的vector<int> element;
然后一次性的给它分配10个元素空间怎么办呢?(也就是说不是在初始化的时候就确定了元素的数目)
2.对于resize()能给个例子么?
3.我式过
vector<int> element(10);
for(int i = 0;i< 10; i++)
{
element[i] = 10;
}
vector<int>element2(5);
element2 = element ;确实可以,谢谢!。

2007-04-15 16:37
dlcdavid
Rank: 3Rank: 3
来 自:成都
等 级:新手上路
威 望:6
帖 子:193
专家分:0
注 册:2005-12-23
得分:0 
回复:(vaqeteart)[求助]vector使用的问题?
以下是引用dlcdavid在2007-3-24 14:46:10的发言:

运行一下就行了


#include <iostream>
#include <vector>
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(5);
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;
}



[此贴子已经被作者于2007-4-15 22:44:55编辑过]


为了C++,我放弃了课本
为了高考,我又放弃了C++
现在而今眼目下,我能做什么?www.
2007-04-15 22:38
dlcdavid
Rank: 3Rank: 3
来 自:成都
等 级:新手上路
威 望:6
帖 子:193
专家分:0
注 册:2005-12-23
得分:0 



#include <iostream>
#include <vector>
using namespace std;

int main()
{
vector<int>vec;
for(int i=0; i<5; ++i)
{
vec.push_back(i);
}

cout<<vec.size() <<endl;
for(vector<int>::iterator itr=vec.begin();itr!=vec.end();++itr)
cout<<*itr;
cout<<endl;

vec.resize(10);
cout<<vec.size() <<endl;
for(itr=vec.begin();itr!=vec.end();++itr)
cout<<*itr;
cout<<endl;

vec.resize(1);
cout<<vec.size() <<endl;
for(itr=vec.begin();itr!=vec.end();++itr)
cout<<*itr;
cout<<endl;

return 0;
}


为了C++,我放弃了课本
为了高考,我又放弃了C++
现在而今眼目下,我能做什么?www.
2007-04-15 23:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-131598-1-1.html




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

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