Как вставить список строк (текстовый формат) в контейнер в алфавитном порядке? - PullRequest
0 голосов
/ 07 июня 2011

Supose у меня есть

(A,B)
(A,C)
(A,D)
(B,C)
(B,D)
(C,D)
(D,E)

в текстовом файле. Я извлеку его с помощью регулярных выражений.

Я хотел бы вставить данные в контейнер, чтобы он выглядел следующим образом.

A->B,C,D
B->C,D
C->D
D->E

Какой контейнер я использую?

Мне нужно иметь возможность просматривать данные как с левой, так и с правой стороны контейнера, т. Е. По значению ключа. Поэтому мне нужно иметь возможность искать / искать

A, B, C, D в

A->B,C,D
B->C,D
C->D
D->E

и B, C, D в

A->B,C,D

Мне нужно иметь возможность искать и вставлять оба ключа и значения для повторения, поэтому если я получу (C, E), я могу вставить его, чтобы иметь

C->D,E

1 Ответ

2 голосов
/ 07 июня 2011

A std::vector с одноразовой сортировкой в ​​конце может быть более эффективным, чем что-то вроде std::set (который будет поддерживать порядок при вставке).

Мой совет - выбрать тот, который лучше всего соответствует семантике того, что вы хотите сделать, а затем изменить его позже, если вы обнаружите, что он неэффективен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...