Я хотел бы создать два контейнера, которые содержат итераторы друг к другу. Я бы хотел сделать это, не внося никаких промежуточных/косвенных типов. Является ли это возможным или имеет тип итератора в зависимости от знания размера типа данных контейнера?Контейнер итераторов C++ и циклические ссылки
Ниже приведен пример кода, который я хотел бы получить компиляции:
#include <map>
#include <deque>
#include <string>
class mapvalue_t
{
public:
std::deque< std::map<std::string,mapvalue_t>::iterator >::iterator i;
};
typedef std::map<std::string,mapvalue_t> maptype_t;
typedef std::deque<maptype_t::iterator> queuetype_t;
int main(void)
{
maptype_t m;
queuetype_t q;
}
Ничего, он компилирует прямо сейчас. У меня была очередь там, а не мой предполагаемый deque :)
Я не уверен, что вы редактируете свой вопрос, чтобы не быть вопросом, является хорошей практикой. –