vector是用数组实现的,每次执行push_back操作,相当于底层的数组实现要重新分配大小(即先free掉原来的存储,后重新malloc)

函数名

push_back,算法语言里面的一个函数名,如:   

1) c++中的vector头文件里面就有这个push_back函数;   

2) 在vector类中作用为在vector尾部加入一个数据;   

3) string中也有这个函数,作用是字符串之后插入一个字符。

函数原型

void push_back(value_type_Ch);

参数 _Ch–>The character to be added to the end of the string.

在vector类中:

1 void push_back(const_Ty&_X)
2 {
3   insert(end(),_X);
4 }

在vector<_Bool, _Bool_allocator >类中:

1 void push_back(constbool_X)
2 {
3   insert(end(),_X);
4 }

vector容器中添加和删除元素

添加元素:

方法一:

insert() 插入元素到Vector中iterator insert( iterator loc, const TYPE &val );                       //在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器void insert( iterator loc, size_type num, const TYPE &val );                //在指定位置loc前插入num个值为val的元素 void insert( iterator loc, input_iterator start, input_iterator end );       //在指定位置loc前插入区间[start, end)的所有元素

方法二:

push_back() 在Vector最后添加一个元素(参数为要插入的值)

删除元素:

方法一:

clear() 清空所有元素empty() 判断Vector是否为空(返回true时为空)

方法二:

erase() 删除指定元素 (可以用指针来代替迭代器)iterator erase( iterator loc );                    //要删除元素的迭代器iterator erase( iterator start, iterator end );    //要删除的第一个元素的迭代器,要删除的第二个元素的迭代器

方法三:

pop_back() 移除最后一个元素

方法四:

可以采用通用算法remove()来删除vector容器中的元素, 不同的是,采用 remove 一般情况下不会改变容器的大小,而pop_back()与erase()等成员函数会改变容器的大小。

例如:

#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <list>
using namespace std;void PrintInt( const int &nData)
{cout<<nData<<endl;
}int _tmain( int argc, _TCHAR* argv[])
{vector< int > vecInt;for ( int i=0; i<10;++i){vecInt.push_back(i);}cout<< " 向量中的内容为:" <<endl;for_each(vecInt.begin(),vecInt.end(),PrintInt);cout<< "vector contains " <<vecInt.size()<< " elements" <<endl;vecInt.pop_back(); // 删除最后一个元素cout<< " 删除最后一个元素后,vector contains " <<vecInt.size()<< " elements" <<endl;vector< int >::iterator k = vecInt.begin();vecInt.erase(k); // 删除第一个元素//vecInt.erase(k); // 迭代器k 已经失效,会出错cout<< " 删除第一个元素后,vector contains " <<vecInt.size()<< " elements" <<endl;//vecInt.erase(vecInt.begin(),vecInt.end()); // 删除所有元素//cout<<" 删除所有元素后,vector contains "<<vecInt.size()<<"elements"<<endl; // 输出为0vector< int >::iterator vecNewEnd =remove(vecInt.begin(),vecInt.end(),5); // 删除元素cout<< " 删除元素后,vector contains " <<vecInt.size()<< " elements" <<endl;cout<< " 向量开始到新结束为止的元素:" <<endl;for_each(vecInt.begin(),vecNewEnd,PrintInt);cout<< " 向量中的元素:" <<endl;for_each(vecInt.begin(),vecInt.end(),PrintInt);return 0;
}

C++ | vector 类中的 push_back( ) 函数 、(添加和删除函数)相关推荐

  1. PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆...

    PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆  什么是cookie 服务器在客户端保存用户的信息,比如登录名,密码等 这些数 ...

  2. python列表增加一行_Python 列表中的修改、添加和删除元素的实现

    本文介绍的是列表中的修改.添加和删除元素.第一次写博客,如果本文有什么错误,还请大家评论指正.谢谢! 创建的列表大多数都将是动态的,这就意味着列表创建后,将随着程序的运行删减元素. 修改列表元素 修改 ...

  3. vector类中为什么没有push_front方法和pop_front方法

    vector是开辟一块空间来作为数组来存放元素(随机迭代器),如果有了pop_front,pop_back这个功能则很容易造成内存碎片,pop_front会造成头部内存产生碎片,pop_back造成尾 ...

  4. matlab匿名函数方式定义函数,在matlab中定义函数添加@(x)——匿名函数

    f=@(x)acos(x) 表示 f 为函数句柄,@是定义句柄的运算符.f=@(x)acos(x) 相当于建立了一个函数文件:% f.mfunction  y=f(x)y=acos(x); @是匿名函 ...

  5. python装饰器函数执行后日志_Python装饰器记录日志、异常处理、函数添加,python,处理函数,功能...

    为什么需要使用装饰器? 举一个简单的例子: 当你需要记录一个函数整个处理过程的时间,你会怎么做?最简单直观的方法,当然是在函数开始跟结束的地方记录时间.代码如下: import time def ac ...

  6. Android中GridView实现互相添加和删除

    日常的开发中有可能会涉及到一些添加或者删除表格的操作,这时候需要用到GridView,在Android系统布局定义里,它是一个网络形状的Layout,我们可以用Adapter对其进行填充,并且可也自定 ...

  7. mysql删除函数sql_SQLServer之删除函数

    删除函数注意事项 从当前数据库中删除一个或多个用户定义函数.DROP 函数支持本机编译的标量用户定义函数. 如果数据库中存在引用 DROP FUNCTION 的 Transact-SQL 函数或视图并 ...

  8. 向Vector类中添加不同类型的元素,并输出Vector元素

    import java.util.*;public class demo1 {public class MyVector extends Vector{//指定capacity(初始容量)和capac ...

  9. RedisTemplate常用操作工具类封装,实现一个函数添加,删除,更新及对应批量操作

    使用示例 /*** @author evildoer* @since 2021-02-05*/ @Service @AllArgsConstructor public class QuestionSe ...

最新文章

  1. 前后端分离接口规范~
  2. 例题3-5 生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)
  3. 基于OpenGL编写一个简易的2D渲染框架-03 渲染基本几何图形
  4. 逐飞科技对于STC8H1K系列的单片机正交解码的资料以及实验
  5. python入门教程非常详细-Python 基础教程
  6. oracle 导出数据 utl,【原创】利用utl_file包进行表数据导出
  7. java富文本如何转义_富文本编辑器wangEditor中转义字符的问题
  8. (0.1)鸿蒙HarmonyOS开发工具DevEco Studio设置
  9. vue设置textarea最大字数_【Vue 学习】 Vue常用系统指令
  10. java常见命名规则
  11. excel 绘制箱图
  12. java基础教程 吴仁群 试读_清华大学出版社-图书详情-《Java基础教程》
  13. 吴恩达机器学习视频学习笔记(2)
  14. keil中函数变量定位方法
  15. html颜色代码表,html中黄色代码是什么
  16. <<计算机视觉CVPR>>2022:Grounded Language-Image Pre-training
  17. win10文件服务器ssd当缓存盘,Win10怎么启用设备上的写入缓存|提高固态硬盘性能方法...
  18. Occlusion Culling(遮挡剔除)
  19. 出现顺丰丢件很好办,做好这几点就可无忧
  20. 爱创课堂每日一题-Javascript垃圾回收方法?

热门文章

  1. 直播间搭建解决方案有哪些
  2. linux centos扩容挂载磁盘后,数据丢失恢复(无备份、快照情况恢复)
  3. 深圳Maker Faire创客市集:国内外创客组团来参展
  4. html语言结构格式是什么,HTML语言是什么?
  5. 华为鸿蒙系统nova8se,华为Nova8SE的同根兄弟:荣耀Play5,定价将决定它的“命运”...
  6. TP5的页面跳转与重定向
  7. 【重磅】全球首款7nm芯片华为麒麟980“恐怖”面世,双核NPU,10月首发
  8. iPhone SE2再爆黑科技,高配置组合!搭配双卡双待?
  9. HTML的浮动与定位
  10. 全国种子双交会暨2023(天津)功能性农业·农业大健康大会