vector常用函数

原文链接

vector常用函数

包含头文件< vector >

1. 初始化

如:

vector<int> first;             // 创建一个空的vector
vector<int> second (4,100);        // 创建一个带有4个100的vector
vector<int> third (second.begin(),second.end());  // 将second的begi到end赋给third
vector<int> fourth (third);     //创建一个等于third的vector
vector<int> fourth = third;    // 同上操作
2. Iterator操作相关函数:

1.begin:iterator begin();

返回指向第一个元素的iterator指针

2.end:用法与begin同,通常是一起使用来遍历容器中的元素

返回指向最后一个元素再后面一个的iterator指针

3. capacity相关函数

1.size:
容器中元素个数。c.size();

2.max_size():
返回最大容量。c.maxsize();

3.resize:void resize (size_type n, value_type val = value_type());

改变容器可以容纳元素的个数为n。如果n小于当前的容器大小,则保留前面n个元素,移除后面的。如果n大于当前容器大小,就扩展容器。value是初始值,如果n大于当前容器大小,则新增加的元素的值为value,若value省略,会自动调用一个默认值。

4.capacity: size_type capacity() const;

当前分配给容器的存储空间大小(元素个数),这并不限制容器的扩展,理论限制容器扩展大小是max_size的值

5.empty: bool empty() const;

返回容器是否为空while(!c.empty()){sum+=c.back();
c.pop_back();}

4.元素访问相关函数

1.[ ]操作:获取特定位置的元素。c[i];

2.front:
返回容器中的第一个元素。c.front();

3.back:
返回容器中最后一个元素。c.back();

5.更新操作

1.assign:
void assign (size_type n, const value_type& val);
给容器分配新的内容,并替换当前内容,同时修改大小,val为初始值
例如

std::vector<int>first;
std::vector<int>second;
std::vector<int>third;

first.assign(7,100);

std::vector<int>::iterator it;
it=first.begin()+1;
second.assign(it,first.end()-1);

int myints[]={1776,7,4};
third.assign(myints,myints+3);

2.push_back: void push_back (const value_type& val);

在容器最后增加一个新的元素。c.push_back(n)

3.pop_back:void pop_back();

移除最后一个元素。c.pop_back()
4.insert:

         void insert(iterator position,size_type n,const value_type& val):在position处插入n个元素,插入的元素值初始化为val

         void insert(iterator position,InputIterator first,InputIterator last):在position处插入数组中从first到last的元素

例如

vector<int> c(3,100);
vector<int>::iterator it;

it=c.begin();
vector<int> d(2,400);
c.insert(it+2,d.begin(),d.end());

int s[]={501,502,503};
c.insert(c.begin(),s,s+3);

5.erase

     iterator erase(iterator position):删除position处的元素
     iterator erase(iterator first,iterator last):删除first到last的元素

举例

std::vector<int> myvector;
for (int i=1; i<=10; i++) myvector.push_back(i);

myvector.erase (myvector.begin()+5);
myvector.erase (myvector.begin(),myvector.begin()+3);

std::cout << "myvector contains:";
for (unsigned i=0; i<myvector.size(); ++i)
std::cout << ' ' << myvector[i];

结果为:4 5 7 8 9 10

6.swap:void swap(vector &x)

交换两个容器的内容,两个容器中的元素不一定要相等。c.swap(d);

7.clear:void clear():清楚容器中的所有元素。c.clear();

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值