Я хотел бы скопировать массив в обратном порядке в конец того же массива и в то же время изменить алгебраический знак значений.Копировать массив в обратном порядке
Это что-то вроде этого:
void foo()
{
std::vector<int> vec;
for(int = 0; i < 5; i++)
{
vec.push_back(i);
}
//Now i want the values in vec to be copied to the end in reverse order.
//I would like to have something like that :
std::copy(std::end(vec), std::begin(vec), std::back_inserter(vec))
//so now vec should look like: 0 1 2 3 4 4 3 2 1 0
//But I want: 0 1 2 3 4 -4 -3 -2 -1 -0
}
Есть ли станд стандартная функция уже существующих, что я могу настроить, чтобы делать то, что я хочу (как partition_copy или что-то), или я, возможно, придется использовать свою собственную вещь например std :: for_each с соответствующей лямбда-функцией?
Это похоже на работу для ['std :: transform'] (http://en.cppreference.com/w/cpp/algorithm/transform). –