欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ 標準模板類詳解

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

1 標準模板庫

STL提供了表示容器、迭代器、函數(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ù),對元素利用<運算符進行操作。

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)文章

  • C語言結(jié)構(gòu)體定義的方法匯總

    C語言結(jié)構(gòu)體定義的方法匯總

    結(jié)構(gòu)體是一種工具,用這個工具可以定義自己的數(shù)據(jù)類型。下面通過本文給大家分享了C語言結(jié)構(gòu)體定義的方法匯總,需要的朋友參考下吧
    2017-12-12
  • C++全面精通類與對象

    C++全面精通類與對象

    類和對象是兩種以計算機為載體的計算機語言的合稱。對象是對客觀事物的抽象,類是對對象的抽象。類是一種抽象的數(shù)據(jù)類型;變量就是可以變化的量,存儲在內(nèi)存中—個可以擁有在某個范圍內(nèi)的可變存儲區(qū)域
    2022-05-05
  • 深入分析C++中deque的使用

    深入分析C++中deque的使用

    本篇文章介紹了,深入分析C++中deque的使用。需要的朋友參考下
    2013-05-05
  • C++類的構(gòu)造與析構(gòu)特點及作用詳解

    C++類的構(gòu)造與析構(gòu)特點及作用詳解

    本文章將會可能會涉及到匯編的知識,不過沒有關(guān)系,我會講的盡量通俗易懂;另外本篇文章開始前,建議了解下什么是函數(shù)重載,這個概念很簡單的--有相同的函數(shù)名,但參數(shù)列表不相同的函數(shù),就是函數(shù)重載
    2022-10-10
  • C語言中冒泡排序算法詳解

    C語言中冒泡排序算法詳解

    大家好,本篇文章主要講的是C語言中冒泡排序算法詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 解析C++編程中的bad_cast異常

    解析C++編程中的bad_cast異常

    這篇文章主要介紹了C++編程中的bad_cast異常,bad_cast異常通常出現(xiàn)于表達式中類型轉(zhuǎn)換錯誤時等一些場景,需要的朋友可以參考下
    2016-01-01
  • C語言中判斷兩個IPv4地址是否屬于同一個子網(wǎng)的代碼

    C語言中判斷兩個IPv4地址是否屬于同一個子網(wǎng)的代碼

    這篇文章主要介紹了C語言中判斷兩個IPv4地址是否屬于同一個子網(wǎng)的代碼,需要的朋友可以參考下
    2017-09-09
  • Matlab繪制雨云圖的方法詳解

    Matlab繪制雨云圖的方法詳解

    這篇文章主要介紹了如何利用Matlab實現(xiàn)雨云圖的繪制,文中的示例代碼講解詳細,對我們學(xué)習(xí)Matlab有一定的幫助,需要的可以參考一下
    2022-05-05
  • C語言數(shù)組詳細介紹

    C語言數(shù)組詳細介紹

    大家好,本篇文章主要講的是C語言數(shù)組詳細介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • C++實現(xiàn)WebSocket服務(wù)器的案例分享

    C++實現(xiàn)WebSocket服務(wù)器的案例分享

    WebSocket是一種在單個TCP連接上進行全雙工通信的通信協(xié)議,與HTTP協(xié)議不同,它允許服務(wù)器主動向客戶端發(fā)送數(shù)據(jù),而不需要客戶端明確地請求,本文主要給大家介紹了C++實現(xiàn)WebSocket服務(wù)器的案例,需要的朋友可以參考下
    2024-05-05

最新評論