请问一个insert的有关问题!
请教一个insert的问题!!
list<int> lst(10,1);
list<int>::iterator iter=lst.begin();
lst.insert(iter,5);
书上说的insert将插入元素在iter所指向元素前插入,但是这个iter指向的第1个,在第1个之前插入是有效的么????我只知道超出末端第1个元素,难道也有超出始端吗??
------解决方案--------------------
list是一个双向链表,初始化时又一个节点,这个节点既是begin()也是end(),做标志位用,插入一个新节点只是将这些节点连接在一起,如下
list<int> lst(10,1);
list<int>::iterator iter=lst.begin();
lst.insert(iter,5);
书上说的insert将插入元素在iter所指向元素前插入,但是这个iter指向的第1个,在第1个之前插入是有效的么????我只知道超出末端第1个元素,难道也有超出始端吗??
------解决方案--------------------
list是一个双向链表,初始化时又一个节点,这个节点既是begin()也是end(),做标志位用,插入一个新节点只是将这些节点连接在一起,如下
- CSS code
list<int> li; assert(li.begin() == li.end()); li.insert(li.begin(), 10);