我对 C++ 还是比较陌生,边学边学,我对向其使用者公开 vector 的“最佳”方式是什么感到困惑。我不担心性能。
我有一个包含原始数据
vector 的类。我还有其他类需要使用和处理该 vector 。
通过阅读此处的其他帖子,我不确定是返回对 vector 的 const
引用还是公开 const 迭代器
,因为没有消费者会修改 vector 。
一种方法比另一种更好吗?是否有其他选择或其他事项需要考虑?
typedef std::vector<int> RawNumberContainer;
typedef std::vector<int>::const_iterator RawNumberIterator;
class RawData
{
public:
RawData();
void addNumber(int number)
{
rawNumbers.push_back(number);
}
// this?
RawNumberContainer getRawNumbers() { return rawNumbers; }
// or this?
const RawNumberContainer& getRawNumbersConstReference() { return rawNumbers; }
// or this?
RawNumberIterator getRawNumbersBeginning() { return rawNumbers.begin(); }
RawNumberIterator getRawNumbersEnd() { return rawNumbers.begin(); }
private:
RawNumberContainer rawNumbers;
};
class Something;
class RawDataConsumer
{
public:
// ??
Something* processRawData(RawNumberContainer&);
// ??
Something* processRawData(const RawNumberContainer&);
// ??
Something* processRawData(RawNumberIterator begin, RawNumberIterator end);
};
最佳答案
它:
const RawNumberContainer& getRawNumbersConstReference() const { return rawNumbers; }
它:
Something* processRawData(const RawNumberContainer&);
关于c++ - 访问另一个类包含的 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17787182/