免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      C++看圖學(xué)碼:std::vector

      C++看圖學(xué)碼:std::vector

      簡介

    1. 向量是代表數(shù)組的序列容器,可以改變大小。就像數(shù)組一樣,向量對其元素使用連續(xù)的存儲位置,這意味著它們的元素也可以使用常規(guī)指針上的偏移量來訪問其元素,而且和數(shù)組一樣有效。但與數(shù)組不同的是,它們的大小可以動態(tài)變化,其存儲由容器自動處理。
    2. 在內(nèi)部,向量使用一個動態(tài)分配的數(shù)組來存儲其元素。這個數(shù)組可能需要重新分配,以便在插入新元素時增加其大小,這意味著要分配一個新的數(shù)組并將所有元素移到其中。就處理時間而言,這是一個相對昂貴的任務(wù),因此,向量不會在每次向容器添加元素時重新分配。
    3. 相反,向量容器可能會分配一些額外的存儲,以適應(yīng)可能的增長,因此容器的實際容量可能大于嚴(yán)格意義上的包含其元素所需的存儲(即其大?。?。庫可以實現(xiàn)不同的增長策略,以平衡內(nèi)存的使用和重新分配,但在任何情況下,重新分配應(yīng)該只發(fā)生在對數(shù)增長的大小間隔,以便在向量的末端插入單個元素可以提供攤銷的恒定時間復(fù)雜性(見push_back)。
    4. 因此,與數(shù)組相比,向量消耗更多的內(nèi)存來換取管理存儲的能力,并以有效的方式動態(tài)增長。
    5. 與其他動態(tài)序列容器(deques、lists和forward_lists)相比,向量在訪問其元素時非常高效(就像數(shù)組一樣),并且相對高效地從其末端添加或刪除元素。對于涉及在末端以外的位置插入或刪除元素的操作,它們的表現(xiàn)比其他的差,而且與list和forward_lists相比,它們的迭代器和引用也不太一致。
    6. 要點

      • 無開銷的隨機(jī)訪問
      • 快速遍歷;適合于線性搜索
      • 以攤銷后的恒定時間在末端插入
      • 如果在頭部或者隨機(jī)位置的進(jìn)行插入或刪除操作占主導(dǎo)地位,可能會很慢
      • 如果元素類型有很高的復(fù)制/分配成本,可能會很慢(重新排序的元素需要復(fù)制/移動它們)。
      • 對于大量的值來說,可能會有很長的分配時間
      • std::vector 是封裝動態(tài)數(shù)組的順序容器。
      • std::pmr::vector 是使用多態(tài)分配器的模板別名。

      例子1

      vector內(nèi)存布局

      #include #include int main(){ std::vector v {2,4,5}; v.push_back(6); v.pop_back(); v[1] = 3; std::cout << v[2] << std::endl; for (int x : v) std::cout << x << ' '; std::cout << std::endl; v.reserve(8); v.resize(5, 0); for (int x : v) std::cout << x << ' '; std::cout << std::endl; std::cout << v.capacity() << std::endl; std::cout << v.size() << std::endl;}https://wandbox.org/nojs/gcc-headhttps://wandbox.org/nojs/clang-head

      例子2

      #include #include using namespace std;struct p2d { p2d(int x_, int y_): x{x_}, y{y_} {} int x, y;}; int main(){ vector v { p2d{2,3} }; // insert copy v.push_back( p2d{6,4} ); // construct in place with // constructor arguments v.emplace_back(9,7); // iterator to first pos v.emplace(begin(v), 5,8); for (p2d x : v) std::cout << x.x << ' ' << x.y << std::endl;}

      例子3

      #include #include int main(){ std::vector v {0,1,2,3,5,6}; auto i = std::begin(v) + 3; //v.insert(i,8); //std::cout << *i; // ERROR //v.erase(i); //std::cout << *i; // ERROR std::cout << *i << std::endl; i = v.insert(i,8); std::cout << *i << std::endl; i = v.erase(i); std::cout << *i << std::endl; for (int x : v) std::cout << x << ' '; std::cout << std::endl;}

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      (0)
      用戶投稿
      上一篇 2022年6月23日 12:11
      下一篇 2022年6月23日 12:11

      相關(guān)推薦

      • 研究人員表示,極端洪水、干旱使風(fēng)險管理變得困難和無效

        #頭號周刊# 研究人員警告說,洪水和干旱的風(fēng)險管理策略可能不會減少前所未有的極端天氣事件的影響,因為氣候變化導(dǎo)致這些事件變得更加頻繁。 德國地球科學(xué)研究中心的研究人員周三在周三發(fā)表…

        2022年8月16日
      • KingDraw PC教程丨一步搞定!輕松調(diào)整畫板大小,支持直接打印

        KingDraw支持畫板大小的調(diào)整,我們可以將畫板設(shè)置為無限大小和固定大小,通過畫板上方的“菜單” “文件” “頁面設(shè)置”就可以進(jìn)行設(shè)置。進(jìn)行頁面設(shè)置后,新的畫板大小會成為系統(tǒng)默認(rèn)…

        2022年8月1日
      • 你收藏過哪些特別喜歡的經(jīng)典句子?

          1、看淡一點,再努力一點,越努力越幸運(yùn),這世上沒有誰活得比誰容易,只是有人在呼天喊地,有人在靜默堅守。   2、別煩我,我不做英雄。   3、平凡的日子需要一束光。   4、你…

        2022年4月30日
      • 美國數(shù)千萬人聯(lián)袂上演“大辭職”但沖動之后的懊悔之心誰人知

        今年前5個月,大約2,000萬美國人辭職,掀起一輪來勢洶洶的“大辭職”浪潮。但根據(jù)一項最新調(diào)查,許多人現(xiàn)在頗為懊悔。 根據(jù)人工智能求職平臺Joblist過去三個月對超過15,000…

        2022年7月15日
      • 原神:申鶴可以和優(yōu)菈配隊嗎?當(dāng)然可以,理論上來說,堪稱絕配

        哈嘍,大家好,我是拾柒。 導(dǎo)讀: 眾所周知,申鶴是2.4版本上架的一個冰元素輔助角色。她的出現(xiàn),拉開了冰元素純色隊的序幕。當(dāng)然,也算是結(jié)束了“鐵打的輔助,流水的C”的時代……不過,…

        2022年7月29日
      • 2022年秋老虎一般是幾月份 2022年秋老虎從幾月開始

        2022年秋老虎一般是幾月份?2022年秋老虎從幾月開始?秋老虎每年的時間不定,但是也固定在一個范圍內(nèi)了,看立秋是在什么時候出現(xiàn),立秋后的一段高溫天氣時間就是秋老虎。想知道秋老虎養(yǎng)…

        2022年7月31日
      • 砍傳奇那些年的故事

        在論壇看到比較有意思的紛爭故事: 之前知道逐鹿人氣不錯,然后去年花了2000玩了六道,今年上海疫情特別嚴(yán)重,于是看見有了原始神途,記不清楚當(dāng)時玩的是逐日12區(qū)或9區(qū)進(jìn)游戲之后選的戰(zhàn)…

        2022年7月1日
      • 現(xiàn)在很難,接下來可能會更難

        前幾天的深夜風(fēng)暴,相信很多人都坐立難安! 這是全球匯市發(fā)起的超級風(fēng)暴,全球主要貨幣集體殺跌,日元跌幅最大,日元兌美元甚至狂跌近12000點,貶值點數(shù)接近40000點! 還有虛擬貨幣…

        2022年8月27日
      • 預(yù)售營銷四大問題曝光 江蘇省消保委呼吁電商平臺規(guī)范經(jīng)營

        來源:中國消費(fèi)者報?中國消費(fèi)網(wǎng) “買的春裝,夏天都到了,貨卻還沒到。”“一件T恤等20個工作日才能發(fā)貨?!薄昂貌蝗菀椎鹊筋A(yù)售期結(jié)束,可是商家還不能發(fā)貨,還要延遲?!苯陙?,不少電商…

        2022年6月21日
      • Python和Java二選一該學(xué)啥?

        Python和Java二選一該學(xué)啥? 有網(wǎng)友說Python和Java之間選擇一門進(jìn)行學(xué)習(xí),現(xiàn)在很糾結(jié)該選哪個。不知道這兩種語言都有什么前景? 選java,選java,選java?。 ?/p>

        2022年6月27日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息