2014-09-05 68 views

回答

2

std::string將始終複製從陣列由char *指向。你也可以在一些構造函數中提供一個迭代器範圍。

在一個std::string副本中複製或引用計數取決於您正在使用的C++庫。

C++ 2011標準要求std :: string製作真正的副本。 2003年的標準允許引用計數副本。

GNU libstdC++使用引用計數的字符串。而爲了向後兼容,即使是2011年標準的GCC也可以與它們一起構建。否則,它無法鏈接到使用2003標準構建的代碼。

有一個預處理器定義來啓用新行爲。

又見std::string copy constructor NOT deep in GCC 4.1.2?Is std::string refcounted in GCC 4.x/C++11?

+2

參考複製字符串時,計數可能發生。但是這個問題是關於複製一個'const char *',它不能被引用計數。 – interjay 2014-09-05 18:52:08

+1

@interjay:也提到operator = though。 – 2014-09-05 18:52:53

+2

它用'const char *'參數提到'operator ='。 – interjay 2014-09-05 18:54:36

相關問題