[英]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.