Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
13 / 13 / 9
Регистрация: 23.10.2014
Сообщений: 184
1

Контейнеры Vector,List

27.03.2015, 19:01. Показов 1547. Ответов 4
Метки нет (Все метки)

Как в массиве списков переместить из первой ячейки все элементы которые делятся на 2 в другую ячейку?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2015, 19:01
Ответы с готовыми решениями:

Контейнеры Vector и List (C++)
Уважаемые форумчане! Помогите, пожалуйста, реализовать вручную классы Vector и List с основными их...

Контейнеры map и vector
Есть контейнер map, в нем хранятся символы и коды этих символов(в векторе, в 0 и 1) map<char,...

Контейнеры list
Здравствуйте! Такой вопросик есть: Если у меня имеется такая штука list<int> *adj; - в классе...

Контейнеры (функция, которая бы помогла отсортировать контейнер List)
составить булевскую функцию, которая бы помогла отсортировать контейнер List. контейнер содержит...

4
2409 / 1811 / 398
Регистрация: 15.12.2013
Сообщений: 7,833
27.03.2015, 20:53 2
попробуйте
http://www.cplusplus.com/refer... m/copy_if/
0
Форумчанин
Эксперт CЭксперт С++
8167 / 5015 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
27.03.2015, 22:07 3
Лучший ответ Сообщение было отмечено rockstarone как решение

Решение

Цитата Сообщение от rockstarone Посмотреть сообщение
Как в массиве списков переместить из первой ячейки все элементы которые делятся на 2 в другую ячейку?
Например так (не самое лучшее решение т.к. фактически можно за один проход):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <algorithm>
#include <iostream>
#include <string>
#include <list>
#include <vector>
 
void print(const std::vector<std::list<int>> &v)
{
    for (const auto &l : v)
    {
        for (const auto &word : l)
            std::cout << word << " ";
        std::cout << std::endl;
    }
}
 
void moveEvenElementsFromFirstToLast(std::vector<std::list<int>> &v)
{
    auto firstIt = v.begin();
    auto lastIt = v.rbegin();
    auto isEven = [](const int x) { return x % 2 == 0;};
    std::copy_if(firstIt->begin(), firstIt->end(), std::back_inserter(*lastIt), isEven);
    auto newEndPos = std::remove_if(firstIt->begin(), firstIt->end(), isEven);
    firstIt->erase(newEndPos, firstIt->end());
}
 
int main()
{
    std::vector<std::list<int>> vec = {
        {1, 2, 3, 4},
        {2, 5},
        {0},
        {7, 5}
    };
    print(vec);
    moveEvenElementsFromFirstToLast(vec);
    std::cout << "\nAfter:\n";
    print(vec);
}
1
2540 / 1199 / 358
Регистрация: 30.11.2013
Сообщений: 3,820
27.03.2015, 22:10 4
Цитата Сообщение от MrGluck Посмотреть сообщение
v.begin()
тут же вылетить можно, если пустой
0
Форумчанин
Эксперт CЭксперт С++
8167 / 5015 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
27.03.2015, 22:50 5
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
ут же вылетить можно, если пустой
Ну не совсем тут, скорее при его разыменовании в 22 строке.
Задача была не оградиться от всего опасного, а показать пример. Для заранее заданной последовательности не критично.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2015, 22:50

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Зачем нужны контейнеры stack, queue, list, если это всё можно заменить вектором?
В чём их преимущество? Оптимизация?

vector и list
1) Правильно ли я понимаю, что при расширении вектора все предыдущие указатели портятся? ...

vector, list, deque
Пытаюсь разобраться, куда лучше какой контейнер применять, под какие задачи. Первый вопрос по...

Сортировка vector и list
Здравствуйте. vector&lt;int&gt; функцией STL медленнее сортируется, чем list&lt;int&gt; собственным методом. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.