Есть массив:
18.666667
-9216.000000
-4480.000000
-2389.333333
-2016.000000
448.000000
Как переставить 18.6
на место между -2016
и 448
(на предпоследнюю позицию)?
Сохранить 18.6 во временной переменной, сдвинуть все в массиве начиная с -9216... по -2016... включительно на один элемент, и поставить сохраненное значение в нужное место...
Нужно создать новую переменную, в которую сохранить предпоследний элемент( иначе он пропадет). Дале устанавливаем последний элемент вместо предпоследнего. А последний элемент равен той новой переменной.
Можно попробовать сдвинуть элемент массива на k позиций с помощью метода std::rotate:
Более детально описано тут
Для арифметических типов проще всего и эффективнее будет воспользоваться стандартной функцией std::memmove
, объявленной в заголовочном файле <cstring>
.
Например,
#include <iostream>
#include <cstring>
int main()
{
double a[] =
{
18.666667, -9216.000000, -4480.000000,
-2389.333333, -2016.000000, 448.000000
};
for (double x : a) std::cout << x << ' ';
std::cout << std::endl;
size_t src = 0, dsn = 4;
double tmp = a[src];
std::memmove(a + src, a + src + 1, ( dsn - src) * sizeof( double ));
a[dsn] = tmp;
for (double x : a) std::cout << x << ' ';
std::cout << std::endl;
}
Вывод программы на консоль
18.6667 -9216 -4480 -2389.33 -2016 448
-9216 -4480 -2389.33 -2016 18.6667 448
std::sort(std::begin(arr), std::end(arr));
std::sort(arr.begin() arr.end());
std::sort(pointer, pointer + arrsize);
В зависимости от типа используемого массива и версии стандарта.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пытаюсь написать функцию с переменным числом параметров без использования доп библиотекФункция такого вида: sum(int к-во элементов,элемент1,элемент2...
Нужно найти подстроку, в строке wstring, без учёта регистраОС - Windows
Использую Map компонент под QML и кровь из носа нужно сделать поддержку различных поставщиков карт, таких как Yandex, Google, Yahoo и тд
Необходимо, чтобы нить t4 ждала события просчета времени "time = 1000 * (getTime() - time);" и после этого запускаласьКак реализовать? Нужен именно Event (такое...