Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.92
Skatwoker6
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 8
#1

split C++ для начинающих - C++

22.04.2013, 22:14. Просмотров 3840. Ответов 23
Метки нет (Все метки)

Народ будет большая просьба: кто сможет объяснить как работает split. Искал и не нашел, гугл ничего нормального для понимания не даёт.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 22:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос split C++ для начинающих (C++):

Аналог метода Split для std::string - C++
Как можно раздилить string? вот например строчка из сишарп string s = "class Klass"; string sarr = s.Split(' '); есть...

С++ для начинающих - C++
Пожалуйста помогите решить задачу С++ с помощью функций:Составить программу, сравнивающую два числа, введенных римскими цифрами.

С/С++ для начинающих - C++
Вводится последовательность целых чисел, 0 – конец последовательности. Вычислить количество положительных чисел, кратных 7 и не кратных 5 и...

С++ для начинающих - C++
не могу сгенерировать случайные целые числа. всегда одно и тоже значение выходит. при чем эта функция должна быть не в main и количество...

Массивы в с++ для начинающих - C++
В целочисленный массив X(n) после каждого нечетного элемента вставить максимальный простой элемент этого же массива. Определить среднее...

C++ задание для начинающих! - C++
Товарищи, кодеры. Помогите пожалуйста с заданием перваку.

23
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
23.04.2013, 16:51 #16
Avazart, если не учитывать того, что boost::split шаблон, честно говоря, не вижу особой разницы, возвращать через аргумент-ссылку (boost) или по значению через return (учитывая NRVO). Хотя, может я чего-то не знаю.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,055
Записей в блоге: 17
23.04.2013, 16:53 #17
Банально нужно пройтись по нескольким строкам, а кидать результат в один контейнер ...
Либо контейнер изначально не пуст нужно только добавить результат...
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
23.04.2013, 17:01 #18
Avazart, Не используется буст для этого. В версии 1.48 по крайней мере.

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
40
41
42
43
44
45
        template< 
            typename SequenceSequenceT,
            typename RangeT,
            typename FinderT >
        inline SequenceSequenceT&
        iter_split(
            SequenceSequenceT& Result,
            RangeT& Input,
            FinderT Finder )
        {
            BOOST_CONCEPT_ASSERT((
                FinderConcept<FinderT,
                BOOST_STRING_TYPENAME range_iterator<RangeT>::type>
                ));
 
            iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(::boost::as_literal(Input));
 
            typedef BOOST_STRING_TYPENAME 
                range_iterator<RangeT>::type input_iterator_type;
            typedef split_iterator<input_iterator_type> find_iterator_type;
            typedef detail::copy_iterator_rangeF<
                BOOST_STRING_TYPENAME 
                    range_value<SequenceSequenceT>::type,
                input_iterator_type> copy_range_type;
            
            input_iterator_type InputEnd=::boost::end(lit_input);
 
            typedef transform_iterator<copy_range_type, find_iterator_type>
                transform_iter_type;
    
            transform_iter_type itBegin=
                ::boost::make_transform_iterator( 
                    find_iterator_type( ::boost::begin(lit_input), InputEnd, Finder ),
                    copy_range_type() );
 
            transform_iter_type itEnd=
                ::boost::make_transform_iterator( 
                    find_iterator_type(),
                    copy_range_type() );
            
            SequenceSequenceT Tmp(itBegin, itEnd);
 
            Result.swap(Tmp);
            return Result;
        }
Особенное внимание стоит обратить на swap в конце.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,055
Записей в блоге: 17
23.04.2013, 17:02 #19
Цитата Сообщение от ForEveR Посмотреть сообщение
Avazart, Не используется буст для этого.
Т.е. ?
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
23.04.2013, 17:03 #20
Зато для варианта от SummerRain не требуется создавать контейнер ДО вызова split
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
23.04.2013, 17:04 #21
Avazart, Т.е. контейнер всегда будет уходить заполненный исключительно результатом split-а.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,055
Записей в блоге: 17
23.04.2013, 17:06 #22
Цитата Сообщение от Tulosba Посмотреть сообщение
Зато для варианта от SummerRain не требуется создавать контейнер ДО вызова split
Ну это не преимущество

Добавлено через 46 секунд
Цитата Сообщение от ForEveR Посмотреть сообщение
Avazart, Т.е. контейнер всегда будет уходить заполненный исключительно результатом split-а.
Да точно, но сути не меняет, ничто не мешает написать так что бы просто добавляло...
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
23.04.2013, 17:11 #23
Цитата Сообщение от Avazart Посмотреть сообщение
Ну это не преимущество
Учитывая замечания ForEveR получается, что и у бустовской версии преимуществ как бы нет.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,055
Записей в блоге: 17
23.04.2013, 17:58 #24
Цитата Сообщение от Tulosba Посмотреть сообщение
Учитывая замечания ForEveR получается, что и у бустовской версии преимуществ как бы нет.
Да это так ...
0
23.04.2013, 17:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2013, 17:58
Привет! Вот еще темы с ответами:

Задачки для начинающих. - C++
Буду очень благодарна: 1)Дана последовательность целых чисел,подсчитать сумму элементов кратных 9. 2)Дана последовательность из...

Многопоточность для начинающих - C++
пускай у нас есть коллекция объектов, вид коллекции можем выбрать как удобно. нужно вызвать функцию foo для каждого объекта в коллекции....

С++ 11 потоки для начинающих - C++
Ранее никогда с потоками дело не имел, не знаю толком никакой теории(если можно, посоветуйте конкретные примеры для быстрого освоения)....

самоучитель с++ для начинающих - C++
Если у кого есть самоучитель с++ для начинающих (совсем), можете загрузить и дать скачать?


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

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

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