可能重复:
C++检查迭代器是否有效的最佳方法
假设我有一个函数,它将迭代器作为唯一参数,如下所示.
void DoSomethingWithIterator(std::vector<int>::iterator iter)
{
// Check the pre-condition
assert( /* how to validate iter here? */ )
// Operate on iter afterwards
..
}
Run Code Online (Sandbox Code Playgroud)
我怎么知道是否iter有效.通过有效的,我的意思是它指向的载体,例如,从内部的现有元素m_intVector.begin()来m_intVector.end().
一般来说,你不能这样做.C++类型旨在最大限度地提高效率,并且不包含此类附加信息.
例如,vector的迭代器很可能等同于指向元素的指针(在我的机器上就是这种情况,使用g ++ 4.7.2).
| 归档时间: |
|
| 查看次数: |
774 次 |
| 最近记录: |