Почему объект в vector of vectors не создается

#c #vector

#c #вектор

Вопрос:

В этом коде:

 vector<vector<int> > outer_vec;
outer_vec.push_back(vector<int> inner_vec);  //THIS FAILS
  

но этот:

 vector<vector<int> > outer_vec;
vector<int> inner_vec;
outer_vec.push_back(inner_vec);  //THIS WORKS FINE
  

В целом, почему в первом случае объект inner_vec не создается.

Ответ №1:

Ваш синтаксис неверен. Если вы просто хотите вернуть новый vector , это должно быть:

 std::vector<std::vector<int>> outer_vec;
outer_vec.push_back(std::vector<int>());
  

Где вы просто создаете новый vector с std::vector<int>()

Комментарии:

1. Можете ли вы предоставить мне ссылку на этот конструктор

2. @AgrudgeAmicus здесь первый конструктор