C++(STL):19---deque之刪除和emplace用法

deque 容器中,無論是添加元素還是刪除元素,都只能借助 deque 模板類提供的成員函數。表 1 中羅列的是所有和添加或刪除容器內元素相關的 deque 模板類中的成員函數。

表 1 和添加或刪除deque容器中元素相關的成員函數
成員函數功能
push_back()在容器現有元素的尾部添加一個元素,和 emplace_back() 不同,該函數添加新元素的過程是,先構造元素,然后再將該元素移動或復制到容器的尾部。
pop_back()移除容器尾部的一個元素。
push_front()在容器現有元素的頭部添加一個元素,和 emplace_back() 不同,該函數添加新元素的過程是,先構造元素,然后再將該元素移動或復制到容器的頭部。
pop_front()移除容器尾部的一個元素。
emplace_back()C++ 11 新添加的成員函數,其功能是在容器尾部生成一個元素。和 push_back() 不同,該函數直接在容器頭部構造元素,省去了復制或移動元素的過程。
emplace_front()C++ 11 新添加的成員函數,其功能是在容器頭部生成一個元素。和 push_front() 不同,該函數直接在容器頭部構造元素,省去了復制或移動元素的過程。
insert()在指定的位置直接生成一個元素。和 emplace() 不同的是,該函數添加新元素

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444373.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444373.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444373.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Struts2.x中獲取request,response,session的方式

Struts2.x中獲取request,response,session的方式有兩種:非IOC方式和IOC方式: 一:非IOC方式: 要獲得request,response,session 這些對象,關鍵是Struts2.x中的com.opensy…

leetcode208. 實現 Trie (前綴樹)

實現一個 Trie (前綴樹),包含 insert, search, 和 startsWith 這三個操作。 示例: Trie trie new Trie(); trie.insert("apple"); trie.search("apple"); // 返回 true trie.search("app"); // 返回 false trie.startsWith…

C++(STL):20---deque容器訪問元素

和 array、vector 容器一樣,deque可以采用普通數組訪問存儲元素的方式,訪問 deque 容器中的元素,比如: #include <iostream>#include <deque>using namespace std;int main(){deque<int>d{ 1,2,3,4 };cout << d[1] << endl;//修改指定下標位…

C++(STL):17---deque之迭代器使用

deque 容器迭代器的類型為隨機訪問迭代器,deque 模板類提供了表 1 所示這些成員函數,通過調用這些函數,可以獲得表示不同含義的隨機訪問迭代器。 表 1 deque 支持迭代器的成員函數 成員函數功能begin()返回指向容器中第一個元素的正向迭代器;如果是 const 類型容器,在該函…

C++(STL):16---deque之常規用法

deque 是 double-ended queue 的縮寫,又稱雙端隊列容器。前面章節中,我們已經系統學習了 vector 容器,值得一提的是,deque 容器和 vecotr 容器有很多相似之處,比如: deque 容器也擅長在序列尾部添加或刪除元素(時間復雜度為O(1)),而不擅長在序列中間添加或刪除元素。d…

C++(STL):22 ---序列式容器queue使用

queue是隊列,特點是先進先出,后進后出,你可以理解為數據結構里的隊列模型,他只允許你訪問 queue<T> 容器適配器的第一個和最后一個元素。只能在容器的末尾添加新元素,只能從頭部移除元素。許多程序都使用了 queue 容器。queue 容器可以用來表示超市的結賬隊列或服務…

C++(STL):23 ---序列式容器queue源碼剖析

一、queue概述 queue是一種先進先出(First In First Out,FIFO)的數據結構。它有兩個出口,形式如下圖所示特點:queue允許新增元素、移除元素、從最底端加入元素、取得最頂端元素但除了最底端可以加入、最頂端可以取出外,沒有任何其他方法可以存取queue的其他元素。換言之q…

leetcode374. 猜數字大小

我們正在玩一個猜數字游戲。 游戲規則如下&#xff1a; 我從 1 到 n 選擇一個數字。 你需要猜我選擇了哪個數字。 每次你猜錯了&#xff0c;我會告訴你這個數字是大了還是小了。 你調用一個預先定義好的接口 guess(int num)&#xff0c;它會返回 3 個可能的結果&#xff08;-1&…

C++(STL):24 ---序列式容器stack用法

1.stack的定義 要使用stack,應先添加頭文件#include <stack>, 并在頭文件下面加上 "using namespace std" //定義 stack< typename > name;2. stack容器內元素的訪問 由于棧(stack)本書就是一種后進先出的數據結構,在STL的stack中只能 通過top()來訪問…

C++(STL):25 ---序列式容器stack源碼剖析

一、stack概述 stack是一種先進后出(First In Last Out,FILO)的數據結構。它只有一個出口, 形式如下圖所示特點:stack允許新增元素、移除元素、取得最頂端元素。但除了最頂端外,沒有任何其他方法可以存取stack的其他元素。換言之stack不允許有遍歷行為將元素推入stack的動…

php-protobuf擴展和代碼生成工具使用

https://github.com/protocolbuffers/protobuf/releases/tag/v3.5.1 下載選擇 https://github.com/protocolbuffers/protobuf/releases/download/v3.5.1/protobuf-php-3.5.1.zip yum install autoconf automake libtool tar -zxvf protobuf-php-3.5.1.tar.gz cd protobuf-3.…

geoip環境配置

1.下載geoip的php擴展庫 wget http://pecl.php.net/get/geoip-1.1.1.tgz tar zxvf geoip-1.1.1.tgz cd geoip-1.1.1 phpize ./configure --with-php-config=/usr/bin/php-config --with-geoip make &make install 2.配置php支持geoip擴展 [root]# ll /usr/lib64/php/modul…

leetcode259. 較小的三數之和

給定一個長度為 n 的整數數組和一個目標值 target&#xff0c;尋找能夠使條件 nums[i] nums[j] nums[k] < target 成立的三元組 i, j, k 個數&#xff08;0 < i < j < k < n&#xff09;。 示例&#xff1a; 輸入: nums [-2,0,1,3], target 2 輸出: 2 解…

Struts2和Spring和Hibernate應用實例

Struts2、Spring和Hibernate應用實例Struts作為MVC 2的Web框架&#xff0c;自推出以來不斷受到開發者的追捧&#xff0c;得到廣泛的應用。作為最成功的Web框架&#xff0c;Struts自然擁有眾多的優點&#xff1a;MVC 2模型的使用、功能齊全的標志庫&#xff08;Tag Library&…

C++(STL):31 ---關聯式容器map源碼剖析

map的特性 所有元素都會根據元素的鍵值自動被排序map中的pair結構 map的所有元素類型都是pair,同時擁有實值(value)和鍵值(key)pair的第一個元素視為鍵值,第二個元素視為實值map不允許兩個元素擁有相同的鍵值下面是stl_pair.h中pair的定義://代碼摘錄與stl_pair.htempla…

leetcode360. 有序轉化數組

給你一個已經 排好序 的整數數組 nums 和整數 a、b、c。對于數組中的每一個數 x&#xff0c;計算函數值 f(x) ax2 bx c&#xff0c;請將函數值產生的數組返回。 要注意&#xff0c;返回的這個數組必須按照 升序排列&#xff0c;并且我們所期望的解法時間復雜度為 O(n)。 示…

C++(STL):27 ---關聯式容器set源碼剖析

一、set set語法使用參閱:set的特性 set所有元素都會根據元素的鍵值自動被排序set中的鍵值就是實值,實值就是鍵值默認情況下set不允許兩個元素重復set的迭代器 不能根據set的迭代器改變set元素的值。因為其鍵值就是實值,實值就是鍵值,如果改變set元素值,會嚴重破壞set組織…

C++(STL):28 ---關聯式容器map用法

作為關聯式容器的一種,map 容器存儲的都是 pair 對象,也就是用 pair 類模板創建的鍵值對。其中,各個鍵值對的鍵和值可以是任意數據類型,包括 C++ 基本數據類型(int、double 等)、使用結構體或類自定義的類型。 通常情況下,map 容器中存儲的各個鍵值對都選用 string 字符…

C++(STL):26 ---關聯式容器set用法

set容器都會自行根據鍵的大小對存儲的鍵值對進行排序, 只不過 set 容器中各鍵值對的鍵 key 和值 value 是相等的,根據 key 排序,也就等價為根據 value 排序。 另外,使用 set 容器存儲的各個元素的值必須各不相同。更重要的是,從語法上講 set 容器并沒有強制對存儲元素的類…

leetcode387. 字符串中的第一個唯一字符

給定一個字符串&#xff0c;找到它的第一個不重復的字符&#xff0c;并返回它的索引。如果不存在&#xff0c;則返回 -1。 案例: s "leetcode" 返回 0. s "loveleetcode", 返回 2. 注意事項&#xff1a;您可以假定該字符串只包含小寫字母。 思路&…