![](/img/trans.png)
[英]For a guaranteed single character, is it better to use `char` or `string`?
[英]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.