gpt4 book ai didi

c++ - STL 容器赋值和 const 指针

转载 作者:可可西里 更新时间:2023-11-01 15:29:00 24 4
gpt4 key购买 nike

编译:

int* p1;
const int* p2;
p2 = p1;

这不是:

vector<int*> v1;
vector<const int*> v2;
v2 = v1; // Error!
v2 = static_cast<vector<const int*> >(v1); // Error!

嵌套 const 指针的类型等价规则是什么?我认为转换是隐式的。此外,我宁愿不实现 STL 容器的逐点分配,除非我真的必须这样做。

最佳答案

直接赋值是不可能的。正如其他人所解释的那样,等价性不是由指针类型建立的,而是由容器类型建立的。在这种情况下,vector 不想接受另一个具有不同但兼容的元素类型的 vector 。

没有真正的问题,因为您可以使用 assign 成员函数:

v2.assign(v1.begin(), v1.end());

关于c++ - STL 容器赋值和 const 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/902667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com