vector::reserve()是"vector"頭的庫函數,用于請求向量分配的改變。詳細參考示例了解。
注意:要使用矢量,請包括<vector>
標題。
vector::reserve() 函數的語法
vector::reserve(n);
參數: int n
- 它接受n
作為參數,其中n
是輸入容量。
返回值: void
- 如果請求有效,則不返回任何內容。但是如果請求的容量大于向量的最大大小(vector::max_size),則會拋出 length_error 異常。
示例:案例 1:(沒有 reserve())
vector<int> arr1; //usual dynamic allocationsize = arr1.capacity();cout << "arr1 growing with usual dynamic allocation:\n";for (int i = 0; i < 50; ++i) { arr1.push_back(i); if (size != arr1.capacity()) { size = arr1.capacity(); cout << "capacity changed to:" << size << '\n'; }}
在這種情況下,我們沒有使用儲備,因此增長是根據動態分配的,增加了兩倍。比如,1, 2, 4, 8, 16, 32, 64, 128.....直到max_size。
示例:案例 2:(使用 reserve())
vector<int> arr2; //using reservesize = arr2.capacity();arr2.reserve(50); // use of reserve functioncout << "arr2 growing with using reverse:\n";for (int i = 0; i < 50; ++i) { arr2.push_back(i); if (size != arr2.capacity()) { size = arr2.capacity(); cout << "capacity changed to:" << size << '\n'; }}
在這種情況下,我們沒有使用儲備,因此增長是根據動態分配的,增加了兩倍。比如,1, 2, 4, 8, 16, 32, 64, 128.....直到max_size。
#include <iostream>#include <vector>using namespace std;int main(){ vector<int>::size_type size; vector<int> arr1; //usual dynamic allocation size = arr1.capacity(); cout << "arr1 growing with usual dynamic allocation:\n"; for (int i = 0; i < 50; ++i) { arr1.push_back(i); if (size != arr1.capacity()) { size = arr1.capacity(); cout << "capacity changed to:" << size << '\n'; } } vector<int> arr2; //using reserve size = arr2.capacity(); arr2.reserve(50); // use of reserve function cout << "arr2 growing with using reverse:\n"; for (int i = 0; i < 50; ++i) { arr2.push_back(i); if (size != arr2.capacity()) { size = arr2.capacity(); cout << "capacity changed to:" << size << '\n'; } } return 0;}
輸出
arr1 growing with usual dynamic allocation:capacity changed to:1capacity changed to:2capacity changed to:4capacity changed to:8capacity changed to:16capacity changed to:32capacity changed to:64arr2 growing with using reverse:capacity changed to:50
參考:C++ vector::reserve()
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
成都寵物市場有哪些?成都有很多寵物市場。這里有十個:1.三圣鄉寵物市場。地址:成都市龍泉驛區三圣鄉萬?;ǔ菍櫸锞方諦區。2.青石橋精品寵物花鳥市場。地址:成都市錦江區新開街18號。3.興源寵物市場。地址:成都市武侯區永康路195號。4.成都三聯花鳥寵物市場。地址:成都市龍泉驛區成洛大道5999號。5.九金路寵物市場。地址:成都市武侯區萬柳路。6、花鳥魚蟲寵物。地址:成都市大邑縣天府街72號。7....
vivo手機互換池變形器怎么還原?沒更新OriginOS系統后桌面會直接出現移位器和交互池,該功能不意見卸載掉,再點擊桌面變形器,即可對壁紙風格進行單色、影像、天氣、時光設置,將圖標風格設置為精巧或簡約,還可對桌面系統參與切換到。交互池可為您提供給各種主流手機操作系統上的交互手勢,您還可以不再發揮想像之中,創造出屬于什么您的手勢組合。vivo如何關閉變形器?1、點擊手機桌面上的磨損器圖標。2、然后...
二級路由器設置教程?1. 我們登錄到第二路由器頁面。2. 然后單擊路由器設置按鈕進入設置頁面。3. 在設置頁面中,單擊LAN端口設置。4. 進入LAN設置頁面后,我們選擇手動設置。5. 進入手動設置頁面后,我們將路由器的LAN地址更改為其他網段。6. 更改完成后,單擊保存按鈕。然后將WAN端口設置為與主路由器連接。二級路由wan口如何設置?不要設置靜態,實現二級路由器的構造:第一個路由器的廣域網端...