Форум программистов, компьютерный форум CyberForum.ru

Вставка в массив - C++

Восстановить пароль Регистрация
 
gjrf64
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 22
16.05.2013, 12:14     Вставка в массив #1
Здравствуйте!
Допустим, у меня есть массив и в него нужно вставить элемент. (Условие: если он больше последнего элемента, то нужно вставить его правее последнего элемента, и если он меньше, то левее последнего элемента). Как это сделать нужно выводить в другой массив, или есть способ работать в этом же массиве?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int n, x, a[20];
    cout<<"Введите количество элементов в массиве: \n";
     cin>>n;
 
     cout<<"Введите элемент вставки: \n";
     cin>>x;
 
    cout<<"Введите элементы массива: \n";
     for(int i=0;i<n;i++)   cin>>a[i];
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2013, 12:14     Вставка в массив
Посмотрите здесь:

Вставка строки в массив. C++
ассемблерная вставка, динамический массив C++
Вставка в одномерный массив C++
C++ Вставка элементов в массив
C++ Двумерный массив Вставка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
16.05.2013, 15:02     Вставка в массив #2
gjrf64, в Вашем случае правильнее использовать список (std::list). С массивом придется вручную двигать элементы, которые стоят правее добавляемого.
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
16.05.2013, 15:08     Вставка в массив #3
gjrf64, да есть, вставка за O(n) с циклическим сдвигом, если вы про массивы, которые хранятся куском в памяти. В std::vector уже реализован данный метод.

Добавлено через 1 минуту
gjrf64, но у вас вставка идёт в конец, так что циклический сдвиг всегда будет О(1)

Добавлено через 1 минуту
gjrf64,
C++
1
2
3
4
a[n] = x;
if (x < a[n-1]) {
    swap(a[n], a[n-1]);
}
gjrf64
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 22
16.05.2013, 21:51  [ТС]     Вставка в массив #4
Спасибо. А с удалением посоветуешь что-нибудь? Не обязательно в конце массива.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
16.05.2013, 22:01     Вставка в массив #5
Цитата Сообщение от gjrf64 Посмотреть сообщение
А с удалением посоветуешь что-нибудь?
std::remove
Yandex
Объявления
16.05.2013, 22:01     Вставка в массив
Ответ Создать тему
Опции темы

Текущее время: 12:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru