Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 哪个是正确的:向量<;常量字符串>;或常量向量<;字符串>;?_C++_Vector - Fatal编程技术网

C++ 哪个是正确的:向量<;常量字符串>;或常量向量<;字符串>;?

C++ 哪个是正确的:向量<;常量字符串>;或常量向量<;字符串>;?,c++,vector,C++,Vector,哪个是正确的:vector还是const vector? 我想创建std::strings的std::vector,我不会对其进行更改。 但我不确定这两种方法中哪一种更好,为什么更好。如果您只选择这两种方法,并且希望程序能够编译,请使用const std::vector 如果您不介意编译错误(在和上),可能是因为const std::string不符合(在C++11之前)或(自C++11之后)的要求,尽管如此,这主要是因为它不是,使用std::vector字符串是常量还是向量?@stark-Hm

哪个是正确的:
vector
还是
const vector?

我想创建
std::string
s的
std::vector
,我不会对其进行更改。
但我不确定这两种方法中哪一种更好,为什么更好。

如果您只选择这两种方法,并且希望程序能够编译,请使用
const std::vector


如果您不介意编译错误(在和上),可能是因为
const std::string
不符合(在C++11之前)或(自C++11之后)的要求,尽管如此,这主要是因为它不是,使用
std::vector

字符串是常量还是向量?@stark-Hmm有趣的问题。好吧,我明白你的意思了。我不会向向量添加新元素。我想用几个字符串初始化它,然后它将保持这种状态。总是有
const vector
。当然,如果需要
vector
string
api,您只需要解决所有这些问题;如果没有,您可以直接使用
const char*const[]
std::vector
甚至不应该编译,这使得这个问题变得简单…实际问题是
const std::string
不是,编译器错误消息抱怨缺少有效的
运算符delete
:“
调用“operator delete(const std::basic_string*&)
”时没有匹配函数。理论上,您可以为不可
复制可分配
移动可分配
T
声明一个
std::vector
,只要您不尝试在其中放入任何元素。().但是,获得常量
字符串
s的可变
向量
的最佳方法是什么?