2016-02-17 2 views
-1

Я хочу, чтобы вставить только несколько значений, скажем 3 числа в vector.Is там каким-либо образом, кроме этогоКак вставить только несколько данных в вектор в C++?

vector<int>v; 
    v.push_back(a1); 
    v.push_back(a2); 
    v.push_back(a3); 

иначе, чем this.Anything в одной строке?

+4

Возможно 'vector v = {a1, a2, a3};'? (C++, 11). – Niall

ответ

5

Что-то, как это будет работать:

int arr[] = { 4, 5, 6, 7 }; 
std::vector<int> v1 (arr, arr + sizeof(arr)/sizeof(arr[0])); 

Если вы используете C++ 11, у вас есть больше возможностей:

std::vector<int> v2 (std::begin(arr), std::end(arr)); 

или, еще лучше, без временного массива:

std::vector<int> v3 { 1, 2, 3 }; 
+0

Работал просто отлично :) Спасибо :) – Doubts

0

Если вы знаете перед собой, сколько элементов необходимо разместить в векторе, вы можете использовать std :: vector :: reserve. Но он не будет уменьшать начальную емкость вектора.

Чтобы убедиться, что емкость с низким значением считается 3 в вашем случае, вам может потребоваться использовать C++ 11 добавлена ​​функция, std :: vector :: shrink_to_fit(). Здесь вы можете передать параметр int в этой функции, чтобы убедиться, что вы только зарезервируете элементы, которые хотите в векторе. пример использования.

vector<int> vi; 
vi.shrink_to_fit(3); // only takes 3 elements. 
// now add 3 elements as you need. 

надеюсь, что это поможет.