網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
【摘要】
push與push_back是STL中常見(jiàn)的方法,都是向數(shù)據(jù)結(jié)構(gòu)中添加元素。初識(shí)STL,對(duì)于添加元素的方法以產(chǎn)生混淆,這里暫對(duì)兩種方法作出比較分析。此外,本文還將簡(jiǎn)述push對(duì)應(yīng)的stack與queue系列,常見(jiàn)方法的介紹,以及與push_back相對(duì)應(yīng)的vector系列常見(jiàn)方法介紹,詳見(jiàn)下文。
【正文】
- push_back 方法介紹
vector::void push_back (const value_type& val);
vector::void push_back (value_type&& val);
該函數(shù)將一個(gè)新的元素加到vector的最后面,位置為當(dāng)前最后一個(gè)元素的下一個(gè)元素,新的元素的值是val的拷貝(或者是移動(dòng)拷貝)
- vector 常見(jiàn)方法介紹
(1)vector< 類型 > 標(biāo)識(shí)符 ;
(2)vector< 類型 > 標(biāo)識(shí)符(最大容量) ;
(3)vector< 類型 > 標(biāo)識(shí)符(最大容量,初始所有值);
(4) int i[4] = {12,3,4,5};
vector< 類型 > vi(i , i+2); //得到i索引值為3以后的值 ;
(5)vector< vector<int> > //vi 定義2維的容器;記得一定要有空格,不然可能會(huì)報(bào)錯(cuò)
vector< int > line // 在使用的時(shí)候一定要首先將vi個(gè)行進(jìn)行初始化;
for(int i = 0 ; i < 10 ; i ++)
{
vector.push_back(line);
}
vector 定義二維數(shù)組,長(zhǎng)度可以不預(yù)先確定。
(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)順序訪問(wèn)
vector < int > vi ;
for( int i = 0 ; i < 10 ; i ++)
{
vi.push_back(i);
}
for(int i = 0 ; i < 10 ; i ++) /// 第一種調(diào)用方法
{
cout <<vi[i] <<" " ;
}
for(vector<int>::iterator it = vi.begin() ;it !=vi.end() ; it++) ///第二種調(diào)用方法
{
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 ; ///返回容器內(nèi)找到值的位置。
(9)使用數(shù)組對(duì)C++ vector進(jìn)行初始化
int i[10] ={1,2,3,4,5,6,7,78,8} ;
///第一種
vector<int> vi(i+1,i+3); ///從第2個(gè)元素到第3個(gè)元素
for(vector <int>::interator it = vi.begin() ; it != vi.end() ; it++)
{
cout << *it <<" " ;
}
(10) 結(jié)構(gòu)體的 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 函數(shù)介紹
stack::push(); //在棧頂增加元素
queue::push(); //將x 接到隊(duì)列的末端。
- stack與queue常見(jiàn)方法介紹
1、stack
stack 模板類的定義在<stack>頭文件中。
stack 模板類需要兩個(gè)模板參數(shù),一個(gè)是元素類型,一個(gè)容器類型,但只有元素類型是必要的,在不指定容器類型時(shí),默認(rèn)的容器類型為deque。
定義stack 對(duì)象的示例代碼如下:
stack<int> s1;
stack<string> s2;
stack 的基本操作有:
入棧,如例:s.push();在棧頂增加元素
出棧,如例:s.pop();注意,出棧操作只是刪除棧頂元素,并不返回該元素。
訪問(wèn)棧頂,如例:s.top()
判斷棧空,如例:s.empty(),當(dāng)棧空時(shí),返回true。
訪問(wèn)棧中的元素個(gè)數(shù),如例:s.size()。
2、queue
queue 模板類的定義在<queue>頭文件中。
與stack 模板類很相似,queue 模板類也需要兩個(gè)模板參數(shù),一個(gè)是元素類型,一個(gè)容器類型,元素類型是必要的,容器類型是可選的,默認(rèn)為deque 類型。
定義queue 對(duì)象的示例代碼如下:
queue<int> q1;
queue<double> q2;
queue 的基本操作有:
入隊(duì),如例:q.push(x); 將x 接到隊(duì)列的末端。
出隊(duì),如例:q.pop(); 彈出隊(duì)列的第一個(gè)元素,注意,并不會(huì)返回被彈出元素的值。
訪問(wèn)隊(duì)首元素,如例:q.front(),即最早被壓入隊(duì)列的元素。
訪問(wèn)隊(duì)尾元素,如例:q.back(),即最后被壓入隊(duì)列的元素。
判斷隊(duì)列空,如例:q.empty(),當(dāng)隊(duì)列空時(shí),返回true。
訪問(wèn)隊(duì)列中的元素個(gè)數(shù),如例:q.size()
原文鏈接:https://blog.csdn.net/weixin_36670529/article/details/107557206
相關(guān)推薦
- 2023-05-07 numpy.concatenate函數(shù)用法詳解_python
- 2022-09-01 基于MFC實(shí)現(xiàn)單個(gè)文檔的文件讀寫(xiě)_C 語(yǔ)言
- 2023-02-05 如何用C#獲取計(jì)算機(jī)詳細(xì)的軟件和硬件信息_C#教程
- 2022-04-02 Python面向?qū)ο蟮某绦蛟O(shè)計(jì)詳情_(kāi)python
- 2022-05-28 C語(yǔ)言?超詳細(xì)順序表的模擬實(shí)現(xiàn)實(shí)例建議收藏_C 語(yǔ)言
- 2022-08-04 Django框架之路由用法_python
- 2022-05-05 詳解C語(yǔ)言結(jié)構(gòu)體中的char數(shù)組如何賦值_C 語(yǔ)言
- 2022-03-13 在Linux系統(tǒng)中安裝Docker的過(guò)程_docker
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支