【在 d******i 的大作中提到】 : list l1,l2; : list::iterator li=l1.begin(); // could be l2.begin() : if(li==l1.end()) : ... : else : li++; : 这里l1.end()!=l2.end(), : 所以不像指针一样有个通用的NULL那么灵活。 : C++11有改进吗?有没有只与类型list相关的函数来判空,而不必知道具体的对象 : l1,l2?
R*s
15 楼
热心。。
【在 s*******i 的大作中提到】 : 我搜的
h*c
16 楼
definitely there is great space to grow your communication sckills. In http://www.cplusplus.com/forum/general/71342/ JLBorges post something shows iterator has the property of a closure. I highlight one of his lines: auto position = iterator - seq.begin() ; and another user's amendment auto position = std::distance( sec.begin(), iterator ) ;
不好意思如果没说清楚。 In detail,我不想依赖知道具体的list li对象判断结尾, 因为算法要求把同一个list::iterator it 不断赋值去指向不同的list对象。 所以单从it的角度,虽然可以it++去walk through(这时不依赖li), 却无法自行判尾: it==li.end()要求知道li,不可取, it-li.begin()==li.size()也是一样。 以前用指针没这种依赖,==NULL判尾就是了,所以灵活很多。 我的问题就是 用了stl咋就没这方便了呢,或者说workaround在哪里?
【在 h**********c 的大作中提到】 : definitely there is great space to grow your communication sckills. : In : http://www.cplusplus.com/forum/general/71342/ : JLBorges post something shows iterator has the property of a closure. : I highlight one of his lines: : auto position = iterator - seq.begin() ; : and another user's amendment : auto position = std::distance( sec.begin(), iterator ) ;