繁体   English   中英

标准::矢量 <struct> 到const std :: vector <const struct> *

[英]Std::vector<struct> to const std::vector<const struct>*

我有私有变量std::vector<some struct>我可以以某种方式将向量传递给函数返回值,但是没有“写”访问权限,因此您将无法向其中添加新元素,并且您将无法能够修改元素(例如const std::vector<some const struct>* 。我该怎么做?我唯一的想法是创建一个带有指向现有元素的常量指针的新向量。是否有更好的解决方案?

您不能通过指针或对const vector的引用来修改vector的元素。 因此,以下内容将是安全的:

const std::vector<some_type>* get_pstuff() const { return &the_vector; }
const std::vector<some_type>& get_rstuff() const { return the_vector; }

另一方面,将const_iterators返回到向量的开始和结束可能更惯用:

std::vector<some_type>::const_iterator cbegin() const { return the_vector.cbegin(); }
std::vector<some_type>::const_iterator cend() const { return the_vector.cend(); }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM