У меня естьинициализировать статическую константную зЬй :: пару <строки, вектор <string>>
class myclass
{
// ...
static const vector<pair<string,vector<string>>> var;
// ...
};
в определении класса, чтобы использовать сопоставление отдельных строк для нескольких других. Я использую вектор <> вместо массивов, чтобы иметь возможность добавлять пары сопоставления и длины отображения, не требуя также перераспределять переменные размера. Есть ли способ, чтобы инициализировать переменную в соответствующем файле .cpp, как вектора, не составного типа, то есть, в формате:
const vector<pair<string,vector<string>>> myclass :: var =
{
???
}
или я должен использовать статический метод, как
static myclass::initStaticMembers(){...}
Если есть способ сделать это с первого взгляда, что такое синтаксис? Я искал, но не нашел синтаксиса для выполнения сложной инициализации std :: pair. Например, вы можете инициализировать vector<string>
с
vector <string>myvec={"elem1", "elem2","elem3"};
но как инициализировать сложный vector<pair<string,vector<string>>>
? Спасибо.
Это было предложено много раз. y u нет поиска? –
Да, есть. Почему бы вам не использовать его тогда? – edmz
Возможный дубликат [C++ где инициализировать статический const] (http://stackoverflow.com/questions/2605520/c-where-to-initialize-static-const) –