相关疑难解决方法(0)

我可以在向量中使用const来允许添加元素,但不能对已添加的元素进行修改吗?

我对这个答案的评论让我思考了constness和sort的问题.我玩了一下,把我的问题减少到这个代码的事实:

#include <vector>

int main() {
    std::vector <const int> v;  
}
Run Code Online (Sandbox Code Playgroud)

不会编译 - 你不能创建const int的向量.显然,我应该知道这一点(而且我已经知道了),但我以前从未需要创造这样的东西.然而,它似乎对我来说是一个有用的构造,我想知道是否有任何解决这个问题的方法 - 我想将东西添加到向量(或其他),但是一旦添加它们就不应该被更改.

可能有一些令人尴尬的简单解决方案,但这是我以前从未考虑过的.我可能不应该提到排序(我可能会问另一个问题,看看这个问题的难度).我真正的基本用例是这样的:

vector <const int> v;     // ok (i.e. I want it to be OK)
v.push_back( 42 );        // ok
int n = v[0];             // ok
v[0] = 1;                 // not allowed
Run Code Online (Sandbox Code Playgroud)

c++ stl const

60
推荐指数
4
解决办法
4375
查看次数

标签 统计

c++ ×1

const ×1

stl ×1