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的可变向量
的最佳方法是什么?