将unique_ptr的向量传递给函数,const-reference
Pass a vector of unique_ptr to function, const reference
我通常传递一个包含原始指针的向量,如下所示:
someFunc(const std::vector<MyClass*>& classList){..}
我想知道你是否可以对unique_ptr这样做:
someFunc(const std::vector<std::unique_ptr<MyClass>>& classList){..}
意思是一样的吗?,即只读。
可以。不,意思不一样:std::unique_ptr
表示指针所拥有的资源。一个通用的原始指针可以有许多其他的语义。
关于常量正确性,使用迭代器或operator[]
访问向量的元素将产生对std::unique_ptr
s的常量引用。对于const std::unique_ptr<T>
,指针不能重新分配,而指向的T
对象可以修改。
相关文章:
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 从函数返回const char*数组
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 在 const 函数中通过引用和指针返回之间的区别
- 使用 std::string () const 函数启动线程或未来
- 在运算符重载定义中使用成员函数(const错误)
- 使用共享指针的函数调用,其对象应为 const
- 将函数参数"const char*"转换为"std::string_view"是
- 为什么返回类型的'const'限定符对标有 __forceinline/内联的函数没有影响?
- 使用按引用调用时,不能在没有对象的情况下调用成员函数 const
- 在呼叫运算符函数const中调用运算符时错误
- 我需要用c ++ 98重写c ++ 11代码,c ++ 11正在使用lambda函数[&](const Output & o
- 函数 const 本地对象在C++会发生什么
- int const函数(参数)、int函数(const参数)和int函数(parameters)const之间的区别是什
- const_cast为函数const设置规则并破坏规则
- 构造函数"const variables"设置的用于表示C++数组的边界?
- 将char**传递给C++中的函数(const char**)
- 复制构造函数const char*和Shared_ptr
- 使函数"const"的意图是什么
- c++嵌套映射不匹配成员函数const成员