[英]C++ String\ Vector initialization
我對C ++初始化有疑問。
在Java中:如果我想要一個空的StringBuffer,我應該使用
StringBuffer sb = new StringBuffer();
初始化一個空的字符串緩沖區。
在C ++中:如果我想使用空字符串,則可以聲明
std::string str;
或std::string str = "";
在現實世界中的項目中,我應該總是像第二種形式那樣寫作嗎?
如何聲明一個空向量?
vector<int> vec;
這個可以嗎? 或者我應該給這個vec一些空值?
std:string和std:vector是類,而不是基本類型:這意味着與Integer不同,Integer在聲明時為偽隨機值,string和vector具有明確定義的初始值。
std :: string的默認值為“”。
std :: vector的默認內容為{}。
您可以使用自己喜歡的方法,但是初始化不是必需的,甚至不是非常理想的。
std :: string str(“”); 它直接進行初始化,並使用string(const char *)構造函數。
std :: string str =“”; 它執行復制初始化。
std :: string str; 它創建空字符串。
選項3與其他選項一樣,開銷也較小。 使用它從這里了解更多區別。 復制和直接初始化的行為背后的動機是什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.