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

 更新时间:2019年12月08日 14:10:54   作者:小呆呆yy  
这篇文章主要介绍了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::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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • OpenCV实现最小外接正矩形

    OpenCV实现最小外接正矩形

    这篇文章主要为大家详细介绍了OpenCV实现最小外接正矩形,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • c++实现图像像素计算的示例详解

    c++实现图像像素计算的示例详解

    我们知道每张图像都能够用矩阵来表示,矩阵中每个元素的值表示了图像中每个像素值,像素值的大小就对应着图像的亮暗,本文主要来和大家介绍一下C++进行图像像素计算的相关知识,感兴趣的可以了解下
    2023-12-12
  • C语言定义字符串数组简单代码示例

    C语言定义字符串数组简单代码示例

    在C语言中字符串数组是用来存储多个字符串的,可以通过字符数组或指针数组的方式定义,这篇文章主要介绍了C语言定义字符串数组的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-11-11
  • C++深入刨析优先级队列priority_queue的使用

    C++深入刨析优先级队列priority_queue的使用

    最近我学习了C++中的STL库中的优先级队列(priority_queue)容器适配器,对于优先级队列,我们不仅要会使用常用的函数接口,我们还有明白这些接口在其底层是如何实现的
    2022-08-08
  • C语言实现斐波那契数列(非递归)的实例讲解

    C语言实现斐波那契数列(非递归)的实例讲解

    下面小编就为大家带来一篇C语言实现斐波那契数列(非递归)的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 详解C++中类的六大默认成员函数

    详解C++中类的六大默认成员函数

    这篇文章主要介绍了C++类中的六大默认成员函数的原理雨使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • C/C++ 中memset() 函数详解及其作用介绍

    C/C++ 中memset() 函数详解及其作用介绍

    这篇文章主要介绍了C/C++ 中memset() 函数详解及其作用介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • C++实现LeetCode(22.生成括号)

    C++实现LeetCode(22.生成括号)

    这篇文章主要介绍了C++实现LeetCode(22.生成括号),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++读取单个字符操作示例详解

    C++读取单个字符操作示例详解

    这篇文章主要为大家介绍了C++读取单个字符操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • C语言实现合并字符串

    C语言实现合并字符串

    今天小编就为大家分享一篇C语言实现合并字符串,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论