1

私が持っている状況を想定します:

class A {
private:
    std::vector<X> _v;
    // ...
public:
    A();
    // ...
};

編集および/または読み取りのためにベクター要素へのアクセスを制限する必要があると仮定します。A クラスの外部からベクター内の要素を指定するには、どのタイプのインデックス ( intlongstd::size_tカスタム イテレータなど) を使用すればよいですか?

次のインデックスは正しいですか?

class A {
    // ...
    X getVectorElement(std::size_t);
    void editSomeElementValue(std::size_t, double); // double is the type of the value to edit
};

他にどのようなオプションがありますか?

4

3 に答える 3

1

クラスの設計に最も適したものを使用してください。std::vectorクラスが内部的に使用するという事実は関係ありません。クラス インターフェイスは、実装の詳細によって駆動されるべきではありません。値であろうと型であろうと、すべての調整はクラスで行うことができます。std::size_tunsigned、または何でも使用してください。

于 2013-08-11T15:36:47.237 に答える