現在、vector.Push_back()
を複数回使用する必要がある場合。
私が現在使用しているコードは
_ std::vector<int> TestVector;
TestVector.Push_back(2);
TestVector.Push_back(5);
TestVector.Push_back(8);
TestVector.Push_back(11);
TestVector.Push_back(14);
_
vector.Push_back()
を1回だけ使用し、複数の値をベクトルに渡す方法はありますか?
ベクトルに配列を渡します:
int arr[] = {2,5,8,11,14};
std::vector<int> TestVector(arr, arr+5);
常に std :: vector :: assign を呼び出して配列をベクターに割り当て、std :: vector :: insertを呼び出して複数の配列を追加できます。
C++ 11を使用している場合は、次を試すことができます。
std::vector<int> v{2,5,8,11,14};
または
std::vector<int> v = {2,5,8,11,14};
vector :: insert を使用することもできます。
std::vector<int> v;
int a[5] = {2, 5, 8, 11, 14};
v.insert(v.end(), a, a+5);
編集:
もちろん、実際のプログラミングでは次を使用する必要があります。
v.insert(v.end(), a, a+(sizeof(a)/sizeof(a[0]))); // C++03
v.insert(v.end(), std::begin(a), std::end(a)); // C++11
初期化子リストでそれを行うことができます:
std::vector<unsigned int> array;
// First argument is an iterator to the element BEFORE which you will insert:
// In this case, you will insert before the end() iterator, which means appending value
// at the end of the vector.
array.insert(array.end(), { 1, 2, 3, 4, 5, 6 });
usingvector :: insert(const_iterator position、initializer_list il);http://www.cplusplus.com/reference/vector/vector /挿入/
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec;
vec.insert(vec.end(),{1,2,3,4});
return 0;
}
Boost.Assignment を使用することもできます。
const list<int> primes = list_of(2)(3)(5)(7)(11);
vector<int> v;
v += 1,2,3,4,5,6,7,8,9;
これらは、最も簡単な3つの方法です。
1)初期化子リストから初期化する:
std::vector<int> TestVector = {2,5,8,11,14};
2)初期化リストから割り当てます:
std::vector<int> TestVector;
TestVector.assign( {2,5,8,11,14} ); // overwrites TestVector
3)指定されたポイントに初期化リストを挿入します。
std::vector<int> TestVector;
...
TestVector.insert(end(TestVector), {2,5,8,11,14} ); // preserves previous elements