1. 為啥要用C艸不用C?

        共 1072字,需瀏覽 3分鐘

         ·

        2024-04-11 04:09

        在很多時候,有人會有這樣的疑問

        ——為什么要用C++?C++相對于C優(yōu)勢是什么?

        最近兩年一直在做Linux應(yīng)用,能明顯的感受到C++帶來到幫助以及快感

        之前,我在文章里面提到環(huán)形隊列

        C語言,環(huán)形隊列

        環(huán)形隊列到底是怎么回事?

        用C實現(xiàn)到環(huán)形隊列,是考驗一個工程師的能力,但是到實際項目后,你還需要花時間在設(shè)計這些基礎(chǔ)的東西,就會顯得時間非常緊張。

        在C++里面,很容易就可以給你搞一個Queue給你使用

        如下

        1bd7d9392670e60c73850e4bff0847e5.webp

        當(dāng)然,除了使用Queue,你還有很多存儲數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)選擇

        ——使用std::list:

        如果你需要在隊列中間插入或刪除元素,那么可以考慮使用std::list。std::list是一個雙向鏈表,它可以方便地在任意位置插入或刪除元素。然而,它的內(nèi)存開銷較大,且不支持隨機訪問。

        ——使用數(shù)組或std::vector:

        如果你需要一個固定大小的隊列,那么可以考慮使用數(shù)組或std::vector實現(xiàn)。這種實現(xiàn)方式具有較好的內(nèi)存連續(xù)性,有助于提高緩存命中率。然而,如果隊列需要動態(tài)調(diào)整大小,這種實現(xiàn)方式可能會導(dǎo)致額外的內(nèi)存復(fù)制開銷。

        ——使用環(huán)形緩沖區(qū):

        環(huán)形緩沖區(qū)是一種特殊類型的隊列,它的頭部和尾部是相互連接的。這種實現(xiàn)方式適用于數(shù)據(jù)流的讀寫操作,因為它可以無縫地處理緩沖區(qū)的溢出情況。實現(xiàn)環(huán)形緩沖區(qū)可以使用數(shù)組或std::vector作為底層存儲結(jié)構(gòu)。

        ——使用并發(fā)隊列:

        如果你需要在多線程環(huán)境中使用隊列,那么可以考慮使用并發(fā)隊列。C++標(biāo)準(zhǔn)庫中的std::queue并不是線程安全的,但你可以使用第三方庫,如Intel TBB或Microsoft PPL,或者使用C++11的std::mutex(鎖)std::condition_variable來實現(xiàn)自己的線程安全隊列。

        ——

        做項目和研究東西是兩回事,就好比開車,短距離開車沒有自動駕駛感覺沒問題,很多時候還覺得挺爽,但是如果把距離拉長,項目復(fù)雜度提高,沒有自動駕駛能把人搞廢掉。

        而C++就好比一輛有ACC功能的汽車,他能滿足你的大項目復(fù)雜度需求,不需要再去造一些重復(fù)的輪子。

        并且,你可以大膽的相信std給你提供的東西。

        當(dāng)然了,至于那些遇到的很難解決解釋的bug問題,我們這里就不討論了,只能說明自動駕駛存在的某些bug。


        瀏覽 40
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 欧美大香蕉啪啪 | 中文字幕天天内谢 | 精品视频免费在线观看 | 日韩无码砖区 | 蜜桃视频在线入口www |