Добавить функцию subelements в STL контейнеры

digitalEugene
digitalEugene

Добавить в стандартные контейнеры вроде std::vector и std::list функцию subelements, которая будет аналогом std::string::substr.

-2
рейтинг
2 комментария
Georgy Firsov

Можно использовать итераторы для этой цели.

В векторе и списке итераторы соответствуют требованию InputIterator, а значит к ним можно применить std::advance (со сдвигом на положительное значение). В итоге получением итератора на первый элемент подпоследовательности и заданием длины этой подпоследовательности в сущности получаем аналог substr для std::vector, std::list, std::forward_list

Georgy Firsov
Aracks

Я так понимаю, что Вы пытаетесь добавить функционал на подобие, как в питоне, который позволяет оперировать произвольными подсписками списков. Только боюсь, что для стандартных STL-контейнеров это не подойдёт, ибо простые задачи, как уже сказал Georgy Firsov, легко решаются итераторами, а какие-то сложные манипуляции с подсписками попросту будут неэфффективно работать на стандартных STL-коллекциях. 

Вот если бы в STL были бы мета-коллекции, которые не хранят элементы на самом деле, а лишь представляются коллекциями, то такой функционал был бы для них полезен. Только вот такие мета-коллекции - это, скорее, функционал для СУБД и нужен-ли он в C++ сообще?

Aracks
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения