C++ push方法与push_back方法常见方法介绍

目录
  • 【摘要】
  • 【正文】
  • 1、stack
  • 2、queue

【摘要】

push与push_back是STL中常见的方法,都是向数据结构中添加元素。初识STL,对于添加元素的方法以产生混淆,这里暂对两种方法作出比较分析。此外,本文还将简述push对应的stack与queue系列,常见方法的介绍,以及与push_back相对应的vector系列常见方法介绍,详见下文。

【正文】

  • push_back 方法介绍
vector::void push_back (const value_type& val);
vector::void push_back (value_type&& val);

该函数将一个新的元素加到vector的最后面,位置为当前最后一个元素的下一个元素,新的元素的值是val的拷贝(或者是移动拷贝)

  • vector 常见方法介绍

(1)vector< 类型 > 标识符 ;

(2)vector< 类型 > 标识符(最大容量) ;

(3)vector< 类型 > 标识符(最大容量,初始所有值);

(4) int i[4] = {12,3,4,5};

vector< 类型 > vi(i , i+2); //得到i索引值为3以后的值 ;  

(5)vector< vector<int> > //vi 定义2维的容器;记得一定要有空格,不然可能会报错

vector< int > line // 在使用的时候一定要首先将vi个行进行初始化;   

        for(int i = 0 ; i < 10 ; i ++)  

        {  

            vector.push_back(line);  

        }  

vector 定义二维数组,长度可以不预先确定。

(6)C++ vector排序

vector< int > vi ;   

vi.push_back(1);  

vi.push_back(3);  

vi.push_back(0);  

sort(vi.begin() , vi.end()); /// /从小到大  

reverse(vi.begin(),vi.end()); /// 从大到小 

(7)顺序访问

         vector < int > vi ;   

        for( int i = 0 ; i < 10 ; i ++)  

        {  

            vi.push_back(i);  

        }   

        for(int i = 0 ; i < 10 ; i ++) /// 第一种调用方法  

        {  

            cout <<vi[i] <<" " ;   

        }  

        for(vector<int>::iterator it = vi.begin() ;it !=vi.end() ; it++) ///第二种调用方法  

        {  

            cout << *it << " " ;  

        } 

(8)查找

vector < int > vi ;
for( int i = 0 ; i < 10 ; i ++)
{  

   vector.push_back(i);  

}
vector < int >::interator it = find(vi.begin() , vi.end(),3) ;
cout << *it << endl ; ///返回容器内找到值的位置。

(9)使用数组对C++ vector进行初始化

int i[10] ={1,2,3,4,5,6,7,78,8} ;
///第一种
vector<int> vi(i+1,i+3); ///从第2个元素到第3个元素
for(vector <int>::interator it = vi.begin() ; it != vi.end() ; it++)
{  

     cout << *it <<" " ;   

} 

(10) 结构体的 vector

struct temp
{  

public :  

string str ;   

public :  

int id ;  

}tmp;
int main()
{  

vector <temp> t ;   

temp w1 ;   

w1.str = "Hello world" ;  

w1.id = 1 ;   

t.push_back(t1);  

cout << w1.str << "," <<w1.id <<endl ;   

return 0 ;   

}
  • push 函数介绍
stack::push();   //在栈顶增加元素

queue::push();   //将x 接到队列的末端。
  • stack与queue常见方法介绍

1、stack

stack 模板类的定义在<stack>头文件中。

stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型为deque。

定义stack 对象的示例代码如下:

stack<int> s1;

stack<string> s2;

stack 的基本操作有:

入栈,如例:s.push();在栈顶增加元素

出栈,如例:s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素。

访问栈顶,如例:s.top()

判断栈空,如例:s.empty(),当栈空时,返回true。

访问栈中的元素个数,如例:s.size()。

2、queue

queue 模板类的定义在<queue>头文件中。

与stack 模板类很相似,queue 模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。

定义queue 对象的示例代码如下:

queue<int> q1;

queue<double> q2;

queue 的基本操作有:

入队,如例:q.push(x); 将x 接到队列的末端。

出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。

访问队首元素,如例:q.front(),即最早被压入队列的元素。

访问队尾元素,如例:q.back(),即最后被压入队列的元素。

判断队列空,如例:q.empty(),当队列空时,返回true。

访问队列中的元素个数,如例:q.size()

到此这篇关于C++ push方法与push_back方法的文章就介绍到这了,更多相关C++ push方法与push_back方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++ 中"emplace_back" 与 "push_back" 的区别

     C++ 中"emplace_back" 与 "push_back" 的区别 emplace_back和push_back都是向容器内添加数据. 对于在容器中添加类的对象时, 相比于push_back,emplace_back可以避免额外类的复制和移动操作. "emplace_back avoids the extra copy or move operation required when using push_back." 参见: http:

  • C++ push方法与push_back方法的使用与区别

    [摘要] push与push_back是STL中常见的方法,都是向数据结构中添加元素.初识STL,对于添加元素的方法以产生混淆,这里暂对两种方法作出比较分析.此外,本文还将简述push对应的stack与queue系列,常见方法的介绍,以及与push_back相对应的vector系列常见方法介绍.详见下文. list 也是使用 push_back . [正文] push_back 方法介绍 vector::void push_back (const value_type& val); vector

  • 关于C++中push_back()函数的用法及代码实例

    目录 push_back()函数的用法 vector容器中添加和删除元素 总结 push_back()函数的用法 函数将一个新的元素加到vector的最后面,位置为当前最后一个元素的下一个元素 push_back() 在Vector最后添加一个元素(参数为要插入的值) //在vec尾部添加10 vector<int> vec; vec.push_back(10); //在容器中添加10 int num = 10; vector<int> vec; vec.push_back(num

  • C++ push_back()函数使用详解

    最近在学习Opencv,用C++写程序,做了一个虚拟画笔的项目,即通过摄像头采集视频图像信息,识别视频中的画笔,并画笔在空中的划痕显示在视频图像上.在进行到划痕显示的,由于视频是实时采集的,检测到的画笔位置坐标会不断更新,但是现在需要将划痕留在视频图像上. 经过查阅,push_back()函数可以实现这个功能,首先他存在于vector头文件中,显然和vector有关,其功能是为指定vector容器尾部添加数据,并且该vector的容量随压入数据不断扩大,新压入数据和旧数据共存不会溢出.为了更加形

  • C++实现栈的操作(push和pop)

    目录 栈的操作(push和pop) 栈的组织形式 栈中每个数据节点的定义 栈的类的定义 栈的push操作 栈应用之进制转换 栈的操作(push和pop) 栈的组织形式 如上图所示:栈也是有多个数据节点组成的,每个节点包含有数据域和指向下一个节点的指针域.并且每次的push.pop和判空都是操作的栈顶指针top. 栈中每个数据节点的定义 class data_node{ public: data_node() :data(0), next(NULL){}//default constructer

  • C++ push方法与push_back方法常见方法介绍

    目录 [摘要] [正文] 1.stack 2.queue [摘要] push与push_back是STL中常见的方法,都是向数据结构中添加元素.初识STL,对于添加元素的方法以产生混淆,这里暂对两种方法作出比较分析.此外,本文还将简述push对应的stack与queue系列,常见方法的介绍,以及与push_back相对应的vector系列常见方法介绍,详见下文. [正文] push_back 方法介绍 vector::void push_back (const value_type& val);

  • JavaScript数组合并的8种常见方法小结

    目录 1.ES6 解构 2.遍历添加 3.concat 4.join & split 5.解构添加 6.splice解构 7.apply 8.call 补充:两个数组的交叉合并 总结 1.ES6 解构 [...arr, ...array] 不改原数组值,生成新的数组. 2.遍历添加 array.forEach(item => { arr.push(item) }) 遍历方法:forEach.map.filter.every.for.for in.for of等. 添加方法:push(后追加)

  • 27个JavaScript数组常见方法汇总与实例说明

    1. push() 概括:数组末位增加 参数:需要增加的数据 返回值:数组更新后的长度 let arr = [1,2,3] arr.push(1) // 返回新增后的数组长度 4 arr.push() // 不传参数默认不新增 4 arr.push(1,2,3) // 新增多条数据时,返回新增完成后的数组长度 7 2. pop() 概括:数组末位删除 参数:无 返回值:删除的数据 let arr = [3] arr.pop() // 返回已删除的数据 3 arr.pop() // 当数组数据为空

  • VBS操作Excel常见方法

    dim oExcel,oWb,oSheet Set oExcel= CreateObject("Excel.Application") Set oWb = oExcel.Workbooks.Open("E:\其他\新装电话表.xls") Set oSheet = oWb.Sheets("Sheet1") MsgBox oSheet.Range("B2").Value '#提取单元格B2内容 '..... 3.如果是XP系统,可

  • 用JS动态设置CSS样式常见方法小结(推荐)

    用JS来动态设置CSS样式,常见的有以下几种 1. 直接设置style的属性 某些情况用这个设置 !important值无效 如果属性有'-'号,就写成驼峰的形式(如textAlign) 如果想保留 - 号,就中括号的形式 element.style['text-align'] = '100px'; element.style.height = '100px'; 2. 直接设置属性(只能用于某些属性,相关样式会自动识别) element.setAttribute('height', 100);

  • ASP.NET中弹出消息框的几种常见方法

    本文实例讲述了ASP.NET中弹出消息框的几种常见方法.分享给大家供大家参考.具体分析如下: 在ASP.NET网站开发中,经常需要使用到alert消息框,尤其是在提交网页的时候,往往需要在服务器端对数据进行检验,并给出提示或警告. 这里,仅介绍几种不同的实现方法. 1.众所周知的方法是采用如下代码来实现: 复制代码 代码如下: Response.Write("<script>alert('弹出的消息')</script>"); 不可否认,这种方法是最常用,也是最

  • jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)

    在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. (1)通过aspx.cs的静态方法+WebMethod进行处理 简单的介绍下WebMethod方法的用法 1.修饰符主要用public static修饰 2.方法前面加上[WebMethod]属性表明这是WebMethod方法 3.前台html页面(Client端)访问时要使用post方法,和后台.cs文件进行数据交互,否则会返回整个html页面. 4.当后台页面返回数据后

  • php读取XML的常见方法实例总结

    本文实例讲述了php读取XML的常见方法.分享给大家供大家参考,具体如下: xml源文件 <?xml version="1.0 encoding="UTF-8"?> <humans> <zhangying> <name>张映</name> <sex>男</sex> <old>28</old> </zhangying> <tank> <nam

  • Python存取XML的常见方法实例分析

    本文实例讲述了Python存取XML的常见方法.分享给大家供大家参考,具体如下: 目前而言,Python 3.2存取XML有以下四种方法: 1.Expat 2.DOM 3.SAX 4.ElementTree 以以下xml作为讨论依据 <?xml version="1.0" encoding="utf-8"?> <Schools> <School Name="XiDian"> <Class Id="

随机推荐