我对 C++ 还是比较陌生,边走边学,我对将向量暴露给消费者的“最佳”方式感到困惑。我不担心性能。
我有一个包含向量的类raw data
。我还有其他需要使用和处理该向量的类。
通过阅读此处的其他帖子,我不确定是返回const
对向量的引用还是公开const iterators
,因为没有消费者会修改向量。
一种方式比另一种更好吗?是否有其他选择或其他事情需要考虑?
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);
};