簡體   English   中英

C ++字符串\\向量初始化

[英]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的默認內容為{}。

您可以使用自己喜歡的方法,但是初始化不是必需的,甚至不是非常理想的。

  1. std :: string str(“”); 它直接進行初始化,並使用string(const char *)構造函數。

  2. std :: string str =“”; 它執行復制初始化。

  3. std :: string str; 它創建空字符串。

選項3與其他選項一樣,開銷也較小。 使用它從這里了解更多區別。 復制和直接初始化的行為背后的動機是什么?

暫無
暫無

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

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