1. ホーム
  2. c++

文字列のベクトル配列の初期化

2023-10-04 12:22:26

質問

文字列のベクトル配列を初期化することは可能でしょうか?

例えば

static std::vector<std::string> v; //declared as a class member

私は static で初期化し、文字列で埋めるだけです。それとも、通常の配列のように初期化できない場合は、コンストラクタで埋めるべきでしょうか。

どのように解決するのですか?

一応。

class some_class {
    static std::vector<std::string> v; // declaration
};

const char *vinit[] = {"one", "two", "three"};

std::vector<std::string> some_class::v(vinit, end(vinit)); // definition

end は、単に私が vinit+3 と書く必要がなく、後で長さが変わっても最新の状態に保つことができます。と定義します。

template<typename T, size_t N>
T * end(T (&ra)[N]) {
    return ra + N;
}