一些简单的问题:
std::wstring
是一类引用计数为std::vector
的类吗?在中,我可以将它作为类成员而不指定其大小吗?std::wstring string2 = string1;
(其中string1也是wstring
并且有一个值),它会复制实际数据还是只复制引用类?我曾经知道这一点,但我忘记了。
答案 0 :(得分:2)
std :: wstring是一种像std :: vector这样的引用类吗?如果没有指定其大小,我可以将它作为类成员吗?
是的,它是一个"引用类",您可以将它作为类成员而不指定其大小。
当我这样做时:std :: wstring string2 = string1; (其中string1也是一个wstring并且有一个值),它会复制实际数据还是只复制引用类?
这将复制数据,因为您正在调用wstring类中定义的赋值运算符。
如果你想改变"引用类"考虑使用指针。
答案 1 :(得分:1)
我不太确定你是什么意思"引用类"但是,你可以将它作为一个类成员而不指定大小:
class MyClass
{
private:
std::wstring _str;
}
它会复制实际数据,你将有2个不同的字符串对象,内容相同。
值得注意的是std::string
,std::wstring
,std::u16string
和std::u32string
只是std::basic_string<some_exact_type>
的typedef,所以它们都是一样的方式。