我的班级主要是集装箱的前线,我应该揭露这个事实吗?

Har*_*sen 8 c++ abstraction standard-library

在我的设计中,我有一个课程,主要是一个前台std::vector<OtherClass>.我应该在我的类界面中移交给任何调用者std::iterator,移交对整体的引用vector还是提供一组函数来访问我的内容vector?或者完全采用不同的方法?

更多信息:容器中的元素将在初始化期间设置,并且在程序正常运行时不会添加.我班级的客户经常会做查询并修改OtherClass元素的状态,但不是时间紧迫的.

小智 1

您应该创建函数来在内部修改向量。原因如下:

根据编译器的不同,您可能正在运行不同版本的 STL(标准模板库),这可能会导致意外问题,假设它们可能会改变您在旧(或新)版本的 std::vector 中构建它时的操作方式图书馆并将其发送出去。

但是,我猜测这不是一个库,也不是一个可能与另一个编译器一起使用的项目。只要使用相同版本的 STL 运行和编译,就可以安全地发送指向向量的引用或指针。