I want to push two vectors of integers (id1.a
, and id2.a
) into vector of integer newId
but I got error C2440: 'initializing'
cannot convert from 'std::_Vector_iterator<std::_Vector_val<std::_Simple_types<int>>>' to 'int'
This my code:
struct Ss {
std::vector<int> a;
double b;
double c;
};
// function
Ss getNewId(Ss id1, Ss id2) {
Ss newSs = Ss();
std::vector<int> newId = vector<int>();
//newId.push_back(id1.a);
//newId.insert(id1.a.begin(), id1.a.end());
newId.emplace_back(id1.a.begin(), id1.a.end());
newId.emplace_back(id2.a.begin(), id2.a.end());
newSs.a = newId ;
// some code...//
return newSs;
Now, I did fix the error using:
std::copy(id1.a.begin(), id1.a.end(), std::inserter(newId, newId.end()));
std::copy(id2.a.begin(), id2.a.end(), std::inserter(newId, newId.end()));
but I really don't know why I can't push a vector inside vector using (insert
, or push_back
, etc), and I want to learn. Thanks for any help.