色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C++ STL基本概念是什么

汽車電子技術 ? 來源:C語言Plus ? 作者:Maye426 ? 2023-02-27 15:56 ? 次閱讀

STL,英文全稱 standard template library,中文可譯為標準模板庫或者泛型庫,其包含有大量的模板類和模板函數,是 C++ 提供的一個基礎模板的集合,用于完成諸如輸入/輸出、數學計算等功能。

STL 最初由惠普實驗室開發,于 1998 年被定為國際標準,正式成為 C++ 程序庫的重要組成部分。

STL從廣義上講分為三類:algorithm(算法)、container(容器)和iterator(迭代器),容器和算法通過迭代器可以進行無縫地連接。幾乎所有的代碼都采 用了模板類和模板函數的方式,這相比于傳統的由函數和類組成的庫來說提供了更好的代碼重用機會。

STL細說六大件:

*– 容器(Container)*

		*– 算法(Algorithm)*

		*– 迭代器(Iterator)*

		*– 仿函數(Function object)*

		*– 適配器(Adaptor)*

		*– 空間配制器(allocator)*

在C++標準中,STL被組織為下面的13個頭文 件:、、、、、、、、、、、 和。

說了這么多,使用STL有什么好處呢?

1)STL是C++的一部分,因此不用額外安裝什么,它被內建在你的編譯器之內。

2)STL的一個重要特點是數據結構和算法的分離。盡管這是個簡單的概念,但是這種分離確實使得STL變得非常通用。

3) 程序員可以不用思考STL具體的實現過程,只要能夠熟練使用STL就OK了。這樣他們就可以把精力放在程序開發的別的方面。

4) STL具有高可重用性,高性能,高移植性,跨平臺的優點。

高可重用性:STL中幾乎所有的代碼都采用了模板類和模版函數的方式實現,這相比于傳統的由函數和類組成的庫來說提供了更好的代碼重用機會。關于模板的知識,已經給大家介紹了。

高性能:如map可以高效地從十萬條記錄里面查找出指定的記錄,因為map是采用紅黑樹的變體實現的。(紅黑樹是平橫二叉樹的一種)

高移植性:如在項目A上用STL編寫的模塊,可以直接移植到項目B上。

跨平臺:如用windows的Visual Studio編寫的代碼可以在Mac OS的XCode上直接編譯。

5) 了解到STL的這些好處,我們知道STL無疑是最值得C++程序員驕傲的一部分。每一個C++程序員都應該好好學習STL。只有能夠熟練使用STL的程序員,才是好的C++程序員。

6) 總之:招聘工作中,經常遇到C++程序員對STL不是非常了解。大多是有一個大致的印像,而對于在什么情況下應該使用哪個容器和算法都感到比較茫然。 STL是C++程序員的一項不可或缺的基本技能 ,掌握它對提升C++編程大有裨益。

圖片

Alexander Stepanov

容器

一些封裝數據結構的模板類,簡單來說,就是存儲數據的結構

序列式容器:特點是不會對存儲的元素進行排序,元素排列的順序取決于存儲它們的順序。

關聯式容器:在存儲元素時會為每個元素在配備一個鍵,整體以鍵值對的方式存儲到容器中,可以通過鍵值直接找到對應的元素,而無需遍歷整個容器。另外,關聯式容器在存儲元素,默認會根據各元素鍵值的大小做升序排序。

迭代器

用來遍歷容器中的元素的類型, 類中類 (可以理解為指針),扮演著容器和算法之間的膠合劑

算法

解決問題的方法

容器、迭代器、算法分離案例

#include
using namespace std;
//算法:求數組元素個數
int mcount(int* begin, int* end, int arr[])
{
  int num = 0;
  while (begin != end)
  {
    num++;
    begin++;
  }
  return num;
}
int main()
{
  //容器
  int arr[] = { 7,1,2,5,4,7,5 };
  //迭代器
  int* begin = arr;
  int* end = &arr[sizeof(arr) / sizeof(arr[0])];
  cout << mcount(begin, end, arr);


  while (1);
  return 0;
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62569
  • C++
    C++
    +關注

    關注

    22

    文章

    2108

    瀏覽量

    73618
  • STL
    STL
    +關注

    關注

    0

    文章

    86

    瀏覽量

    18319
收藏 人收藏

    評論

    相關推薦

    C++STL算法(二)

    C++STL算法(二)
    的頭像 發表于 07-18 14:49 ?1035次閱讀
    <b class='flag-5'>C++</b>之<b class='flag-5'>STL</b>算法(二)

    c++STL算法(三)

    c++STL算法(三)
    的頭像 發表于 07-18 15:00 ?1279次閱讀
    <b class='flag-5'>c++</b>之<b class='flag-5'>STL</b>算法(三)

    C語言基本概念及語法

    C語言基本概念和語法供初學者研討
    發表于 08-18 10:32

    c++經典書籍

    。書中不但新增大量教學輔助內容,用于強調重要的知識點,提醒常見的錯誤,推薦優秀的編程實踐,給出使用提示,還包含大量來自實戰的示例和習題。   對C++基本概念和技術全面而且權威的闡述,對現代C++編程風格的強調,使本書成為
    發表于 10-24 21:06

    C語言基本概念

    C語言基本概念
    發表于 08-01 02:00

    C++ STL概念及舉例

      本篇文章是作者本人使用STL 后的一些看法, 對於想要靠此文章學習STL, 是不可能的. 建議叁后面介紹的一些書入門.   STL概念   在
    發表于 08-30 11:39 ?1410次閱讀

    STL算法在GIS中的應用

    使用STL 算法實現GIS 算法可以保證它的簡潔和高效該文結合C++代碼實例抽象出了地理算子的概念應用在GIS 算法當中通過定制適配器來消除地理算子和STL 算法之間的不匹配同時拓展了
    發表于 06-28 16:55 ?33次下載

    C++C/C++程序設計教程_C/C++概述

    C++基礎知識,簡要介紹了C++的一些簡單知識,概念,函數
    發表于 12-25 10:15 ?0次下載

    C++課程資料詳細資料合集包括了:面向對象程序設計與C++,算法,函數等

    ,循環,多態性,數組,模板,習題,STL編程,預處理,指針,結構體,位運算,文件,常見錯誤,c++模板使用疑問等
    發表于 07-09 08:00 ?18次下載
    <b class='flag-5'>C++</b>課程資料詳細資料合集包括了:面向對象程序設計與<b class='flag-5'>C++</b>,算法,函數等

    C++17 STL標準庫學習教材電子書免費下載

    C++標準模板庫(STL)。這本書中的例子展示了如何充分的利用STL。不過,作為本書的第1章,我們還是需要了解一下那些比較重要的新語言特性。
    發表于 02-28 08:00 ?7次下載
    <b class='flag-5'>C</b>++17 <b class='flag-5'>STL</b>標準庫學習教材電子書免費下載

    STL的概述

    C++ STL 是一套功能強大的 C++ 模板類,提供了通用的模板類和函數,這些模板類和函數可以實現多種流行和常用的算法,關于 STL 呢,下面通過一個系統框圖來對其進行一個總結
    的頭像 發表于 01-20 17:08 ?1377次閱讀
    <b class='flag-5'>STL</b>的概述

    C++STL庫中的容器

    前面跟大家介紹過STL庫,STL主要是由6大部分組成,其中第一個提到的就是容器,容器在介紹STL中小哥有簡單的跟大家介紹過,今天稍微再詳細介紹一下
    的頭像 發表于 02-21 10:55 ?1203次閱讀
    <b class='flag-5'>C++</b>之<b class='flag-5'>STL</b>庫中的容器

    線程池基本概念與原理

    一、線程池基本概念與原理 1.1 線程池概念及優勢 C++線程池簡介 線程池是一種并發編程技術,它能有效地管理并發的線程、減少資源占用和提高程序的性能。C++線程池通過庫,結合
    的頭像 發表于 11-10 10:24 ?528次閱讀

    STL內容介紹

    1 什么是STLSTL(Standard Template Library),即標準模板庫,是一個具有工業強度的,高效的C++程序庫。它被容納于C++標準程序庫(
    的頭像 發表于 11-13 11:32 ?834次閱讀
    <b class='flag-5'>STL</b>內容介紹

    C語言的基本概念和編程技術

    電子發燒友網站提供《C語言的基本概念和編程技術.pdf》資料免費下載
    發表于 11-20 10:18 ?0次下載
    <b class='flag-5'>C</b>語言的<b class='flag-5'>基本概念</b>和編程技術
    主站蜘蛛池模板: 亚洲色t图| 亚洲视频在线观看网站| 少女10声大哥喊退色狼| 丝袜美腿美女被狂躁在线观看| 无码乱人伦一区二区亚洲| 午夜亚洲精品不卡在线| 亚洲欧美一区二区三区导航| 伊人久久大香线蕉综合网站| 97超级碰碰人妻中文字幕| xxx日本高清视频hd| 国产精品亚洲电影久久成人影院| 国语自产偷成人精品视频| 久久青青草原精品国产软件| 女教师杨雪的性荡生活| 色网址在线观看| 亚洲中文久久久久久国产精品| 538在线播放| 国产51麻豆二区精品AV视频| 黄得让人湿的片段| 柠檬福利精品视频导航| 色婷婷亚洲精品天天综合影院| 亚洲黄色三级视频| 97视频免费观看| 国产AV一区二区三区日韩| 久久精品国产亚洲AV热无遮挡| 欧美成人国产| 亚洲精品免费观看| 99久女女精品视频在线观看| 国产精品在线手机视频| 两个奶被男人揉了一个晚上| 色小说在线| 最近的中文字幕免费完整| 国产av在线播放| 久久中文字幕人妻AV熟女| 色欲档案之麻雀台上淫| 一区视频免费观看| 成人毛片免费在线观看| 国内精品自线在拍2020不卡| 欧美日韩久久久精品A片| 亚洲男人片片在线观看| 北条麻妃久久99精品|