使用可更改对象返回只读的最佳方法是什么
What is best way to return readonly with changeable objects?
我有对象的容器,我只想返回它们的只读列表,因为对象是在容器内管理的。
class Object;
class Container {
public:
typedef list<Object*> Objects;
// first method, probably slow
Objects getObjects() { return this->objects; }
// another method, but i don't know if it isn't lacking somewhere else
Objects::iterator getObjectsIt() { return this->objects.begin(); }
// OR any better method exists ??
private:
Objects objects;
};
您可能有一种特殊类型的迭代器,该迭代器与list
的成员函数不兼容,这些迭代器采用迭代器来改变列表,以便您可以通过迭代器访问对象,但不能将它们传递给更改它们所属列表的函数。
这假设迭代器不记得它们来自哪个容器。如果他们这样做,那么只需使该特殊的迭代器类没有可以更改其父容器的函数。
返回一个const_iterator
并声明方法const。
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在C++中向零方向近似的最佳方法
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 检测win32服务创建和删除的最佳方法
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 将线程中的数据存储到全局容器的最佳方法?
- 将一系列整数放入类的最佳方法是什么?
- 在派生类中使用基类的私有成员变量的最佳方法
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 比较两个节点坐标的最佳方法是什么?
- 在nodejs中使用本机代码的最佳方法是什么?
- 将 pybind11 绑定标记为已弃用的最佳方法
- C++:将向量传递到构造函数以创建成员变量的最佳方法?
- C++中变量混叠的最佳方法
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?