将vector <int>转换为const vector <const int =“”>

时间:2016-07-08 22:15:33

标签: c++ casting constants

如何将vector<int>投射到const vector<const int>

我已尝试static_cast<const vector<const int>>(array)并使用没有强制转换的值。都没有编译。

2 个答案:

答案 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;
}