[英]C++: char test[100] vs array<char, 100> vs string
如果我知道一個長度固定的字符串,應該使用什么?
char test[100]
std::array<char, 100> test
std::string test
謝謝!
答案在以下問題中:
如果我有一個字符串 ...
如果您有字符串,請使用std::string
。 除非您有沒有提到的非常具體的要求。
在C ++中,應將字符串聲明為string
實例。 但是,如果您需要它為常量,則將其聲明為const string
並正確初始化。
char test[100]
不是字符串,而是100個字符的C數組(可根據需要用於構建C ++字符串)。
std::array<char,100> test
只是一個由數百個字符組成的C ++數組,與字符串無關。
無論您知道它是否為恆定長度,幾乎總是建議您使用std::string
。 將字符串包含在實際的字符串對象中,使您可以查詢字符串的元信息(例如長度),並更好地與C ++功能集成以處理字符串。 如果確保字符串/ cannot /不能超過100個字符對您來說至關重要,那么您可能會發現
std::array<char, 100>
是有價值的,但是我想不出除了使用字符串之外,還希望具有該功能的任何情況。
除非有其他原因,否則您應該首選std::string
。 這不僅表明數據是一個字符串,而且還獲得了所有不錯的字符串函數。
您還獲得了好處,如果您決定更改代碼並允許使用可變的/較大的字符串,則無需更改任何內容,因為std::string
可以縮放
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.