一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C++ STL基本概念是什么

汽車電子技術(shù) ? 來(lái)源:C語(yǔ)言Plus ? 作者:Maye426 ? 2023-02-27 15:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STL,英文全稱 standard template library,中文可譯為標(biāo)準(zhǔn)模板庫(kù)或者泛型庫(kù),其包含有大量的模板類和模板函數(shù),是 C++ 提供的一個(gè)基礎(chǔ)模板的集合,用于完成諸如輸入/輸出、數(shù)學(xué)計(jì)算等功能。

STL 最初由惠普實(shí)驗(yàn)室開(kāi)發(fā),于 1998 年被定為國(guó)際標(biāo)準(zhǔn),正式成為 C++ 程序庫(kù)的重要組成部分。

STL從廣義上講分為三類:algorithm(算法)、container(容器)和iterator(迭代器),容器和算法通過(guò)迭代器可以進(jìn)行無(wú)縫地連接。幾乎所有的代碼都采 用了模板類和模板函數(shù)的方式,這相比于傳統(tǒng)的由函數(shù)和類組成的庫(kù)來(lái)說(shuō)提供了更好的代碼重用機(jī)會(huì)。

STL細(xì)說(shuō)六大件:

*– 容器(Container)*

		*– 算法(Algorithm)*

		*– 迭代器(Iterator)*

		*– 仿函數(shù)(Function object)*

		*– 適配器(Adaptor)*

		*– 空間配制器(allocator)*

在C++標(biāo)準(zhǔn)中,STL被組織為下面的13個(gè)頭文 件:、、、、、、、、、、、 和。

說(shuō)了這么多,使用STL有什么好處呢?

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

2)STL的一個(gè)重要特點(diǎn)是數(shù)據(jù)結(jié)構(gòu)和算法的分離。盡管這是個(gè)簡(jiǎn)單的概念,但是這種分離確實(shí)使得STL變得非常通用。

3) 程序員可以不用思考STL具體的實(shí)現(xiàn)過(guò)程,只要能夠熟練使用STL就OK了。這樣他們就可以把精力放在程序開(kāi)發(fā)的別的方面。

4) STL具有高可重用性,高性能,高移植性,跨平臺(tái)的優(yōu)點(diǎn)。

高可重用性:STL中幾乎所有的代碼都采用了模板類和模版函數(shù)的方式實(shí)現(xiàn),這相比于傳統(tǒng)的由函數(shù)和類組成的庫(kù)來(lái)說(shuō)提供了更好的代碼重用機(jī)會(huì)。關(guān)于模板的知識(shí),已經(jīng)給大家介紹了。

高性能:如map可以高效地從十萬(wàn)條記錄里面查找出指定的記錄,因?yàn)閙ap是采用紅黑樹(shù)的變體實(shí)現(xiàn)的。(紅黑樹(shù)是平橫二叉樹(shù)的一種)

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

跨平臺(tái):如用windows的Visual Studio編寫(xiě)的代碼可以在Mac OS的XCode上直接編譯。

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

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

圖片

Alexander Stepanov

容器

一些封裝數(shù)據(jù)結(jié)構(gòu)的模板類,簡(jiǎn)單來(lái)說(shuō),就是存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu)

序列式容器:特點(diǎn)是不會(huì)對(duì)存儲(chǔ)的元素進(jìn)行排序,元素排列的順序取決于存儲(chǔ)它們的順序。

關(guān)聯(lián)式容器:在存儲(chǔ)元素時(shí)會(huì)為每個(gè)元素在配備一個(gè)鍵,整體以鍵值對(duì)的方式存儲(chǔ)到容器中,可以通過(guò)鍵值直接找到對(duì)應(yīng)的元素,而無(wú)需遍歷整個(gè)容器。另外,關(guān)聯(lián)式容器在存儲(chǔ)元素,默認(rèn)會(huì)根據(jù)各元素鍵值的大小做升序排序。

迭代器

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

算法

解決問(wèn)題的方法

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

#include
using namespace std;
//算法:求數(shù)組元素個(gè)數(shù)
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;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4376

    瀏覽量

    64534
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2118

    瀏覽量

    74961
  • STL
    STL
    +關(guān)注

    關(guān)注

    0

    文章

    86

    瀏覽量

    18769
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C++STL算法(二)

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

    c++STL算法(三)

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

    C語(yǔ)言基本概念及語(yǔ)法

    C語(yǔ)言基本概念和語(yǔ)法供初學(xué)者研討
    發(fā)表于 08-18 10:32

    c++經(jīng)典書(shū)籍

    。書(shū)中不但新增大量教學(xué)輔助內(nèi)容,用于強(qiáng)調(diào)重要的知識(shí)點(diǎn),提醒常見(jiàn)的錯(cuò)誤,推薦優(yōu)秀的編程實(shí)踐,給出使用提示,還包含大量來(lái)自實(shí)戰(zhàn)的示例和習(xí)題。   對(duì)C++基本概念和技術(shù)全面而且權(quán)威的闡述,對(duì)現(xiàn)代C++編程風(fēng)格的強(qiáng)調(diào),使本書(shū)成為
    發(fā)表于 10-24 21:06

    C語(yǔ)言基本概念

    C語(yǔ)言基本概念
    發(fā)表于 08-01 02:00

    C++ STL概念及舉例

      本篇文章是作者本人使用STL 后的一些看法, 對(duì)於想要靠此文章學(xué)習(xí)STL, 是不可能的. 建議叁后面介紹的一些書(shū)入門(mén).   STL概念   在
    發(fā)表于 08-30 11:39 ?1477次閱讀

    STL算法在GIS中的應(yīng)用

    使用STL 算法實(shí)現(xiàn)GIS 算法可以保證它的簡(jiǎn)潔和高效該文結(jié)合C++代碼實(shí)例抽象出了地理算子的概念應(yīng)用在GIS 算法當(dāng)中通過(guò)定制適配器來(lái)消除地理算子和STL 算法之間的不匹配同時(shí)拓展了
    發(fā)表于 06-28 16:55 ?33次下載

    C++C/C++程序設(shè)計(jì)教程_C/C++概述

    C++基礎(chǔ)知識(shí),簡(jiǎn)要介紹了C++的一些簡(jiǎn)單知識(shí),概念,函數(shù)
    發(fā)表于 12-25 10:15 ?0次下載

    C++課程資料詳細(xì)資料合集包括了:面向?qū)ο蟪绦蛟O(shè)計(jì)與C++,算法,函數(shù)等

    ,循環(huán),多態(tài)性,數(shù)組,模板,習(xí)題,STL編程,預(yù)處理,指針,結(jié)構(gòu)體,位運(yùn)算,文件,常見(jiàn)錯(cuò)誤,c++模板使用疑問(wèn)等
    發(fā)表于 07-09 08:00 ?18次下載
    <b class='flag-5'>C++</b>課程資料詳細(xì)資料合集包括了:面向?qū)ο蟪绦蛟O(shè)計(jì)與<b class='flag-5'>C++</b>,算法,函數(shù)等

    C++17 STL標(biāo)準(zhǔn)庫(kù)學(xué)習(xí)教材電子書(shū)免費(fèi)下載

    C++標(biāo)準(zhǔn)模板庫(kù)(STL)。這本書(shū)中的例子展示了如何充分的利用STL。不過(guò),作為本書(shū)的第1章,我們還是需要了解一下那些比較重要的新語(yǔ)言特性。
    發(fā)表于 02-28 08:00 ?9次下載
    <b class='flag-5'>C</b>++17 <b class='flag-5'>STL</b>標(biāo)準(zhǔn)庫(kù)學(xué)習(xí)教材電子書(shū)免費(fèi)下載

    STL的概述

    C++ STL 是一套功能強(qiáng)大的 C++ 模板類,提供了通用的模板類和函數(shù),這些模板類和函數(shù)可以實(shí)現(xiàn)多種流行和常用的算法,關(guān)于 STL 呢,下面通過(guò)一個(gè)系統(tǒng)框圖來(lái)對(duì)其進(jìn)行一個(gè)總結(jié)
    的頭像 發(fā)表于 01-20 17:08 ?1673次閱讀
    <b class='flag-5'>STL</b>的概述

    C++STL庫(kù)中的容器

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

    線程池基本概念與原理

    一、線程池基本概念與原理 1.1 線程池概念及優(yōu)勢(shì) C++線程池簡(jiǎn)介 線程池是一種并發(fā)編程技術(shù),它能有效地管理并發(fā)的線程、減少資源占用和提高程序的性能。C++線程池通過(guò)庫(kù),結(jié)合
    的頭像 發(fā)表于 11-10 10:24 ?925次閱讀

    STL內(nèi)容介紹

    1 什么是STL? STL(Standard Template Library),即標(biāo)準(zhǔn)模板庫(kù),是一個(gè)具有工業(yè)強(qiáng)度的,高效的C++程序庫(kù)。它被容納于C++標(biāo)準(zhǔn)程序庫(kù)(
    的頭像 發(fā)表于 11-13 11:32 ?1280次閱讀
    <b class='flag-5'>STL</b>內(nèi)容介紹

    C語(yǔ)言的基本概念和編程技術(shù)

    電子發(fā)燒友網(wǎng)站提供《C語(yǔ)言的基本概念和編程技術(shù).pdf》資料免費(fèi)下載
    發(fā)表于 11-20 10:18 ?0次下載
    <b class='flag-5'>C</b>語(yǔ)言的<b class='flag-5'>基本概念</b>和編程技術(shù)