Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Как удалить первых пару элементов одномерного массива в С++
 
Собственно САБЖ!=)
 
Код
int main()
{
    int array[15] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
    int i;
    for(i=0;i<13;i++)
    {
         array[i] = array[i+2];
         cout << array[i] << " "; 
    }
    return 0;
}

Первые два элемента удалили, вывели оставшиеся 13
А 14 и 15 элементы остались равными так же 14 и 15
Если этот вариант не подходит, опишите проблему подробнее.
 
Цитата
- - пишет:
int main()
{
   int array[15] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
   int i;
   for(i=0;i<13;i++)
   {
        array[i] = array[i+2];
        cout << array[i] << " ";
   }
   return 0;
}
:o

по сути, конечно, ответ на вопрос, но это же ужасно, господа
используйте списки, STL вам в помощь

топикстартеру: предлагаю описать конечную цель для того чтобы мы могли пояснить как лучше решать такие задачи
Изменено: bzik - 09.04.2010 15:45:22
 
Цитата
bzik пишет:

по сути, конечно, ответ на вопрос, но это же ужасно, господа

используйте списки, STL вам в помощь



топикстартеру: предлагаю описать конечную цель для того чтобы мы могли пояснить как лучше решать такие задачи

Собственно нужно реализовать очередь, типа FIFO т.е. первый вошел, первый вышел! Нужно элементы именно удалять из массива, а не вывести массив с 3-го элемента по 15-й :) bzik, если можешь чем то помочь, буду весьма признателен :) Заранее спасибо :)  - - тоже спасибо, но не то :)
 
Цитата
winner5 пишет:
нужно реализовать очередь, типа FIFO
Так и используй очередь:
http://www.cplusplus.com/reference/stl/deque/

Пример:
Код
#include <iostream>
#include <deque>
using namespace std;

int main ()
{
  //объявляем
  deque<int> mydeque;

  //добавляем три элемента в конец
  mydeque.push_back(1);
  mydeque.push_back(2);
  mydeque.push_back(3);

  //пока не пустая
  while (!mydeque.empty())
  {
    //печатаем что собираемся удалить
    cout << " " << mydeque.front();

    //удаляем из начала
    mydeque.pop_front();
  }

  return 0;
}
Изменено: zagzag - 13.04.2010 13:49:20
 
Цитата
zagzag пишет:
Так и используй очередь
Спасибо=) Теперь, только с очередями разобраться осталось=)
 
Наверное задачу по информатике решает, поэтому списки тут не помогут.
А что тут думать то. Когда вставляешь элемент, смещаешь все элементы массива на 1 позицию в верх, если удаляешь, то наоборот вниз, начиная со второй позиции, а последний элемент удаляешь. Вот и всё.
 
Извращенцы =)

int array_size = 10;
memmove (array, array + 2, (array_size - 2) * sizeof (array[0]));

8)
Страницы: 1
Читают тему