簡體   English   中英

如果可能,最好使用std :: string或單個char?

[英]Is it better to use std::string or single char when possible?

如果可能,最好使用std::string或單個char

在我的課堂上,我想存儲某些字符。 我有CsvReader類,並且我想存儲columnDelimiter字符。 我想知道,將其作為char還是使用std::string更好? 就用法而言,我認為std::string要好得多,但我想知道也許會有主要的性能差異嗎?

  • 如果您的定界符被限制為單個字符,請使用char
  • 如果分隔符可能是字符串,請使用std::string

似乎很不言自明。 請參考項目的要求,以及這些要求所遵循的功能約束。

在我個人看來,CSV字段定界符將始終是單個字符,在這種情況下, std::string不僅會引起誤解,而且毫無意義。

就用法而言,我認為std :: string要好得多

由於您沒有提供任何理由,因此我在很大程度上忽略了這一主張,但我只能說我拒絕了該主張的假設前提。

我想知道也許會有重大的性能差異嗎?

絕對! 字符串由動態分配的字符塊組成。 這完全比內存中的單個字節要重。 盡管您的實現可以執行小字符串優化,但是當您希望表示的只是一個字符時,將所有這些權重相加就毫無意義 單個字符 char ,因此在這種情況下請使用char

角色就是角色。 字符串是字符串; 從概念上講,是一組N個字符,其中N是任何自然數。

如果您的設計需要字符,請使用char 如果需要字符串,請使用string

在這兩種情況下,您都可能遇到多語言問題(如果字符為青字會發生什么?如果字符串為青い時會發生什么?),但這完全取決於您選擇字符還是N個字符集,即串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM