為什麼C 庫開發人員都喜歡自己造乙個字串類?你見過效能最好開源字串類是哪個? 為什麼?

時間 2021-05-06 19:27:34

1樓:

我就不太愛用字串庫,std::string 用的時候自己調教一下也能湊合,更何況現代語言的字串,幾乎沒有設計正確的… STL 如果是下品,很多語言也只不過是中品,因此我也就不挑了。

至於為什麼自己實現,因為追求效能啊,幹什麼事就要用什麼工具,不比其他語言,用 C++ 就是要追求高效,而 STL 很多情況下並不總是最好的選擇。何況對 「字串」 這種東西,每個人有不同理解,按照我的理解來說,Swift 那種只允許通過迭代器訪問的字串才叫字串,但那種東西寫演算法是真的難受。實際情況才是最重要的。

2樓:CodeArhat

因為我經常聽前輩們念叨要Code Rewheel。

因為我也想自造STL、Boost、Loki,但實力暫時還不允許,所以先從String做起。

3樓:徐辰

把字串做成了乙個神似container型卻不似的半吊子,實在是讓人不知道從哪兒開始吐槽。

string本來就是個sequence,連記憶體連續這種約束都是毫無意義的,更別提居然還能隨機訪問,你說這麼個吊功能有個卵用?好好想想你上次不從頭開始直接跳到string中間是幾十年前的事?

4樓:Xi Yang

因為標準庫寫的爛,基本就是個array或者array。

我們日常用JUCE架構,裡面的字串系統支援Unicode,支援UTF8/16/32轉換,含有大量方便的內建功能。

5樓:avoidant

問題一:因為std::string推出的太晚;因為c++提供了這個能力。

問題二:不存在。沒有在各種場景下都能做到最快的字串實現。

6樓:黃亮anthony

大同小異。這就是關鍵點。如果不是瞎搞,那麼小異這一點在這個庫的使用場景中影響巨大。

所以,效能好都是針對於場景的,如果說所有場景平均看,我絕對推薦std::string。

7樓:大釗

我提名乙個吧,

字串在遊戲引擎裡的使用也是乙個重災區,會大量被使用,而且又得支援本地化。所以一般遊戲引擎裡也都會自己造個string的輪子。

得益於UE4原始碼的開源,你可以去裡面翻它的實現。這部分在Core模組裡。

UE4原始碼裡的:

FName: 靜態名字索引

FString: 字串拼接

FText: 本地化顯示

對於想再造C++ String輪子的,這3個類的實現值得好好去研究一下。

另外,UE4裡還有StringTable之類的東西,各種StringParser,StringConversion等一系列配套的工具類。你完全不用去管上層圖形渲染的東西,底層的Core庫就值得好好去學習一下它的一些實現技法和架構組織了。

8樓:傅理

這麼多年了在C++基礎庫中的,所有程式設計師第一課會用到的std::string都這麼難用。

你怎麼能指望初學者,工程上對C++有信心?

Life is short, use golang.

9樓:

因為std::string辣雞。

說是這麼說,不記得從哪個版本開始OpenCV的cv::String直接是std::string的typedef了,畢竟計算機視覺對字串處理的要求不高。

至少在它們最初出現的那個年代,標準庫的std::string就是辣雞。

作為乙個開發人員,你最關心鴻蒙系統的哪部分實現?

zzzman 我最關心的是鴻蒙系統如何分分鐘可以安裝在手機上,余大嘴在會議上可是說過的。不知余大嘴什麼時候在現場會議上做乙個即時的表演。 輝羽 一句話,不要說區區估值不到1500億美元的華為 全部資產 就是估值10000億美元的微軟 Google要來中國做 鴻蒙 系統。概率接近為0,價值也為0,意義...

從技術角度講,作為乙個前端開發人員,怎樣才能寫出讓人眼前一亮的前端頁面

逍遙的碼農 不同的人對頁面的關注點不一樣,有的人看中動畫效果,有的人看中顏色搭配,有的人注重內容。我認為好的頁面需要做到以下幾點 1.精確還原設計圖 2.顏色搭配舒適並且能突出表達的內容,不能喧賓奪主3.動畫效果不能太多,因為動畫會分散瀏覽者注意力最終還是要看頁面用途和場景 廣州藍景實訓部 寫出讓人...

為什麼找到乙個自己喜歡也喜歡自己的人這麼難?

chen luo 那屬實人吶都賤 愛你的人你不愛,你愛的人不愛你。你就得不愛你愛的人,你愛的人才能愛你。Love or not to love is a problem. 嚴肅活潑 都難啊,我是男的。倘若你是大齡剩女的話,你大概就不會再主動啦。以我現在的經驗來看,女生啊,年輕是很大的優勢,大了還不積...