23.02.2019, 15:06 [+3 UTC]
в нашей команде: 3 403 чел. | участники онлайн: 7 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.69 (10.02.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
10.02.2019, 21:59

Форум:
23.02.2019, 14:53

Последний вопрос:
23.02.2019, 14:52
Всего: 148819

Последний ответ:
23.02.2019, 05:22
Всего: 257824

Последняя рассылка:
22.02.2019, 23:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
20.12.2010, 19:51 »
Adsorores
Огромное спасибо за нахождение и чёткое объяснение моих некорректностей и неточностей! [вопрос № 181423, ответ № 264912]
08.02.2010, 12:33 »
Lesine
Супер, на будущее не плохой вариант!!!! [вопрос № 176470, ответ № 259199]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 678
solowey
Статус: Студент
Рейтинг: 322
zdwork
Статус: 1-й класс
Рейтинг: 111

Перейти к консультации №:
 

Консультация онлайн # 66425
Раздел: • С / С++
Автор вопроса: Mixffff
Отправлена: 10.12.2006, 23:33
Поступило ответов: 1

STL - вопрос из темноты
вопрос практический и теоретический.
есть список элементов обычный list и другой такой же , с таким же типом элементов.
Нужно сделать перекрёстные связи между двумя списками :
- например иду по одному листу вниз c front() дохожу до элемента
который "связан" с другим в дргом списке и дальше иду по другому списку
стандартными средствами ,как я понял, можно только добавить удалить
вставить из одного списка в другой.
что хочу:
например
список-а а1-а2-а3-а4-а5-а6-а7-а8
список-б б1-б2-б3-б4-б5-б6-б7-б8-б9
иду по списку а (модифицированному)
а1-а2-б4-б5-а7-б9
(ну поскольку листы однотипны то вероятно можно перекинуть связь
из одного в другой)

вопросы:
1 можно ли изменить итератор (он хранится внутри или
или иммеет чисто информативный характер
облазил list.h но увы, запутался - куча наследований )
1а можноли сделать контейнер итераторов?
2. есть ли возможность реализовать затею через stl может без листа.
(чем нибудь другим)
3 реальна ли моя затея без изменения исходного текста stl ?
4. подскажите инструмент для изучения исходных текстов
(чтобы например как в IDA - дерево вызовов) +дерево классов

Спасибо за внимание

Приложение:

Состояние: Консультация закрыта

Ответ # 131023 от Torsten

Здравствуйте, Mixffff!

1) нет
1.а) а зачем ?
2) да, см. ниже.
3) конечно, изменение исходных текстов библиотек (и stl в том числе) нигде не приветствуется, как правило это не просто плохой стиль программирования, а очень плохой.
4) не знаю, не видел того что есть в IDA.

Что касается вопроса. У списков есть специальные предусмотренные для этого функции врезки. Они как раз и делают то что тебе нужно - переназначают внутренние указатели в списках.
list1.splice(pos, list2, iter_start, iter_end) - перемещает все элементы из интервала обозначенного итераторами iter_start, iter_end из list 2 в list1, перед позицией итератора pos в списке list1.
Это самый универсальный splice - там есть еще несколько перегруженных подобных функций.

В этом случае он переназначит указатели, и 2-ой список останется уже без этих элементов, которые были перенесены в 1-ый.


Консультировал: Torsten
Дата отправки: 11.12.2006, 11:23

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 66425
неизвестный

# 1

= общий = | 11.12.2006, 12:23

спасиба, 1. как представлен сам список - как список "итераторов"(или подобных) или нет? splice .... но это всёравно что перекинуть указатели , получается что нужно переписывать(перемещать) кажждый раз весь лист начиная с той позиции на которую ссылаюсь (вероятно , из меняются при этом 2 указателя донора, 2 приёмника, 2 переписыаемого диапазона), мне бы хотелось изменить только 1 указатель приёмника (на ту позицию после которого ссылка в другой лист,) как бы это ... тут нуужно что-тонестандартное 2. А какие вообще есть анализаторы исходных текстов?

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14613 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.69 от 10.02.2019
Версия JS: 1.33 | Версия CSS: 3.35