如何将vector<int>
投射到const vector<const int>
?
我已尝试static_cast<const vector<const int>>(array)
并使用没有强制转换的值。都没有编译。
答案 0 :(得分:1)
您无法将std::vector<int>
转换为const std::vector<const int>
。
此外,根本不使用std::vector<const int>
。它不会比const std::vector<int>
更安全。
不仅如此,C ++不允许构造std::vector<const T>
。有关详细信息,请参阅Does C++11 allow vector<const T>?。
答案 1 :(得分:0)
您无法更改向量元素的类型,但您可以将向量的类型更改为const std::vector<int>
,这将阻止对向量进行更改。
#include <vector>
int main()
{
std::vector<int> v1;
v.push_back(1);
v.push_back(2);
v.push_back(3);
const std::vector<int>& v2 = v1;
v2.push_back(4); // Causes an error
v2[0] = 4; // Causes an error
return 0;
}