最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ 標(biāo)準(zhǔn)模板類詳解

 更新時間:2021年09月14日 11:34:46   作者:菜鳥的人工智能之路  
今天小編就為大家分享一篇關(guān)于C++標(biāo)準(zhǔn)模板類的介紹與使用講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

1 標(biāo)準(zhǔn)模板庫

STL提供了表示容器、迭代器、函數(shù)對象和算法的模板。

  • 容器:類似數(shù)組存儲若干值,切實(shí)同質(zhì)的;
  • 迭代器:遍歷容器的對象,類似遍歷數(shù)組的指針,廣義指針;
  • 算法:完成特定的任務(wù);
  • 函數(shù)對象:類對象或函數(shù)指針。

模板類 vector

erase() 刪除矢量中給定區(qū)間元素。接受兩個迭代器參數(shù)(該參數(shù)定義了要刪除的區(qū)間),迭代器1指向區(qū)間起始處,迭代器2指向區(qū)間終止處的后一個位置。

// delete first and second elements
data.erase(data.begin(), data.begin() + 2);

insert() 與erase() 功能相反。接受三個迭代器參數(shù)。param1 指定新元素插入位置,param2 和 param3 定義別插入的區(qū)間(通常是其他對象)。

// insert [old.begin + 1, old.end) in the front of data
data.insert(data.begin(), old.begin() + 1, old.end());
// 此時,超尾元素顯得十分方便
// 在末尾緊挨著插入元素
data.insert(data.end(), old.begin() + 1, old.end());

for_each() 接受三個參數(shù)。param1 和 param2 是定義容器中區(qū)間的迭代器,param3 指向函數(shù)的指針(函數(shù)對象)。將被指向的函數(shù)(param3)用于區(qū)間 [param1, param2) 的各個元素。但是被指向的函數(shù) param3 不可以修改區(qū)間的值。 

// 代替for循環(huán)
for(auto iter = data.begin(); iter != data.end(); iter++) {
    showData(*iter);
}
// replace for with for_each
// 注意此處的函數(shù)showData不能修改data的值。
for_each(data.begin(), data.end(), showData);

sort() 排序函數(shù)。

1)接受2個區(qū)間的迭代器參數(shù),對元素利用<運(yùn)算符進(jìn)行操作。

2)接受3個參數(shù),前兩個指定區(qū)間的迭代器,最后一個指向要是有的函數(shù)指針(對象)。這里的函數(shù)類似仿函數(shù)特性,但是形式不同于仿函數(shù)。

區(qū)分全排列(total ordering)和完整弱排序(strict weak ordering)。

// usage 1
sort(data.begin(), data.end());
// usage 2
bool compare(const structData& a, const structData& b) {
    if(a.index == b.index) {
        return a.data < b.data;
    }
    return a.index < b.index;
}
// sort with index from little to big, if index is equal, sort with data.
sort(data.begin(), data.end(), compare);

基于范圍 for 循環(huán)。不同于 for_each,基于范圍的for循環(huán)可以修改容器的內(nèi)容。

2.泛型編程

泛型編程旨在編寫?yīng)毩⒂跀?shù)據(jù)結(jié)構(gòu)的代碼(即編寫一套可以適用于所有數(shù)據(jù)結(jié)構(gòu)的函數(shù)代碼)。模板可以按照泛型定義函數(shù)或者類。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 解析VScode在Windows環(huán)境下c_cpp_properties.json文件配置問題(推薦)

    解析VScode在Windows環(huán)境下c_cpp_properties.json文件配置問題(推薦)

    這篇文章主要介紹了解析VScode在Windows環(huán)境下c_cpp_properties.json文件配置問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • C++超詳細(xì)講解強(qiáng)制類型轉(zhuǎn)換的用法

    C++超詳細(xì)講解強(qiáng)制類型轉(zhuǎn)換的用法

    在C++語言中新增了四個關(guān)鍵字static_cast、const_cast、reinterpret_cast和dynamic_cast。這四個關(guān)鍵字都是用于類型轉(zhuǎn)換的,類型轉(zhuǎn)換(type?cast),是高級語言的一個基本語法。它被實(shí)現(xiàn)為一個特殊的運(yùn)算符,以小括號內(nèi)加上類型名來表示,接下來讓我們一起來詳細(xì)了解
    2022-06-06
  • C++實(shí)現(xiàn)LeetCode(5.最長回文子串)

    C++實(shí)現(xiàn)LeetCode(5.最長回文子串)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(5.最長回文子串),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 使用VS2019編譯CEF2623項(xiàng)目的libcef_dll_wrapper.lib的方法

    使用VS2019編譯CEF2623項(xiàng)目的libcef_dll_wrapper.lib的方法

    這篇文章主要介紹了使用VS2019編譯CEF2623項(xiàng)目的libcef_dll_wrapper.lib的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • C++中繼承與組合的區(qū)別詳細(xì)解析

    C++中繼承與組合的區(qū)別詳細(xì)解析

    C++的“繼承”特性可以提高程序的可復(fù)用性。正因?yàn)椤袄^承”太有用、太容易用,才要防止亂用“繼承”
    2013-09-09
  • C++通過COM接口操作PPT

    C++通過COM接口操作PPT

    這篇文章主要為大家詳細(xì)介紹了C++通過COM接口操作PPT的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C語言堆排序經(jīng)典算法TopK問題解析

    C語言堆排序經(jīng)典算法TopK問題解析

    這篇文章主要為大家介紹了C語言堆排序經(jīng)典算法TopK問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • C語言實(shí)現(xiàn)自行車存放管理系統(tǒng)

    C語言實(shí)現(xiàn)自行車存放管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)自行車存放管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • OpenCV識別圖像上的線條軌跡

    OpenCV識別圖像上的線條軌跡

    這篇文章主要為大家詳細(xì)介紹了OpenCV識別圖像上的線條軌跡,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 如何利用C++實(shí)現(xiàn)mysql數(shù)據(jù)庫的連接池詳解

    如何利用C++實(shí)現(xiàn)mysql數(shù)據(jù)庫的連接池詳解

    為了提高M(jìn)ySQL數(shù)據(jù)庫的訪問的瓶頸,除了在服務(wù)器端增設(shè)緩存服務(wù)器緩存常用的數(shù)據(jù)之外(如redis),還可以增加數(shù)據(jù)庫連接池,來提高M(jìn)ySQL Server的訪問效率,這篇文章主要給大家介紹了關(guān)于如何利用C++實(shí)現(xiàn)mysql數(shù)據(jù)庫的連接池的相關(guān)資料,需要的朋友可以參考下
    2021-07-07

最新評論

隆尧县| 东辽县| 收藏| 宣汉县| 巴青县| 探索| 广南县| 大厂| 盐山县| 和平区| 探索| 广东省| 桐柏县| 临漳县| 沙坪坝区| 乌兰浩特市| 临邑县| 海兴县| 西林县| 乌拉特中旗| 防城港市| 靖江市| 若尔盖县| 收藏| 金堂县| 台东市| 罗江县| 万荣县| 衢州市| 嫩江县| 西贡区| 罗甸县| 镇安县| 赤壁市| 陆良县| 迭部县| 本溪| 大洼县| 江西省| 隆子县| 宣化县|