Я хочу осуществить insert
в C++
как это:как C++ вставить, как python?
// python code
insertIndexes = [1, 1, 2, 2, 3, 3, 5]
arr = []
toInsertValue = 0;
for i in insertIndexes:
arr.insert(i, toInsertValue)
toInsertValue += 1
print arr // [0, 1, 3, 5, 4, 6, 2]
, но я считаю, что я должен знать вектор размер, если я хочу использовать вставку в C++
:
// !!C++ wrong code!!
// vec is not initialized correctly
vector<int> vec;
int insertIndexes[] = {1, 1, 2, 2, 3, 3, 5}
int toInsertValue = 0;
for (int i = 0; i < sizeof(insertIndexes)/sizeof(insertIndexes[0]); i++) {
vec.insert(vec.begin() + insertIndexes[i], toInsertValue);
toInsertValue += 1;
}
'Int индексов = {1, 1, 2, 2 , 3, 3, 5} '? Нахх ... Этот код плохо сформирован. – WhiZTiM
Если у вас есть массив, вы можете использовать ['std :: begin'] (http://en.cppreference.com/w/cpp/iterator/begin) и [' std :: end'] (http: // en.cppreference.com/w/cpp/iterator/end), чтобы получить итераторы к массиву, и использовать [диапазон для 'for' loop] (http://en.cppreference.com/w/cpp/language/ range-for) или почти любую [стандартную функцию алгоритма] (http://en.cppreference.com/w/cpp/algorithm), ожидающую диапазон, определенный парой итераторов. –
Каков ваш выход и ожидаемый выход? –