2013-07-20 62 views
2

我正在開發一個建造記錄的類(具有固定數量的字段)。我的公共方法允許用戶按索引插入各個值。沒有要求用戶填寫全部字段 - 所以我想預先分配代表記錄的矢量到準確的大小,每個字段初始化爲空字符串。C++實例std :: vector <std::string>具有固定數量的空字符串

有沒有比使用後退循環更容易做到這一點的方法?

+4

閱讀std :: vector的文檔並尋找構造函數! –

回答

9

事情是這樣的:

std::vector<std::string> v(N); 

其中N是弦數。這將創建一個包含N空字符串的向量。

2

您只需選擇矢量類的標準構造函數之一,即輸入中接收的元素數量(使用默認構造函數生成,它將是一個空字符串,用於std::string),您希望從一開始就放入你的矢量。

int N = 10; 
std::vector<std::string> myStrings(N); 

您也可以將所有的字符串初始化爲不同的值,一個空字符串,例如:

int N = 10; 
std::vector<std::string> myStrings(N,std::string("UNINITIALIZED")); 

文檔: http://www.cplusplus.com/reference/vector/vector/vector/

您可能也有興趣看這樣的: Initializing an object to all zeroes

0
std::vector<std::string> v(N); 

會做這件事。

+2

您的第二個版本以哪種方式更有效率,即您的第一個版本? – Antonio

相關問題