请教iterator 的&*用法。
如:template <class iterator>
void DoSearch(stContext& Context, iterator gstart, iterator gend)
用法:
DoSearch(m_Context, &*m_contentcache.begin(), &*m_contentcache.end());和DoSearch(m_Context, m_contentcache.begin(), m_contentcache.end());
有什么区别begin和end的函数是这样的。std::reverse_iterator<const_conv_iterator> begin() const;std::reverse_iterator<const_conv_iterator> end() const;
什么情况下是一样的谢谢各位。
如:template <class iterator>
void DoSearch(stContext& Context, iterator gstart, iterator gend)
用法:
DoSearch(m_Context, &*m_contentcache.begin(), &*m_contentcache.end());和DoSearch(m_Context, m_contentcache.begin(), m_contentcache.end());
有什么区别begin和end的函数是这样的。std::reverse_iterator<const_conv_iterator> begin() const;std::reverse_iterator<const_conv_iterator> end() const;
什么情况下是一样的谢谢各位。
那 vector<string>::itorater itor = m_contentcache.begin();所以*m_contentcache.begin() = "这是第一个数据";完了再&*m_contentcache.begin() 就是取 字符串的地址了。
typedef _const_iterator<MyDSTRU> const_conv_iterator;struct MyDSTRU
{
char Ser;
};
谢谢,
然后再到DoSearch里的情况又是怎样呢?template <class iterator>
void DoSearch(stContext& Context, iterator gstart, iterator gend)
void DoSearch(stContext& Context, iterator gstart, iterator gend)iterator 迭代就是相当于 指针。这个就是很好理解了, 传入开始和结束的指针, 然后查找。
究竟iterator 迭代 和 指针 的情况如何?
这里有些想不明白vs6和vs2003下可能可以当成指针。
vs2008下出不少问题,势必想完全搞懂这些含义。
iterator的定义不就是类的指针么
class<T>XX
{typedef T* iterator;//如此
}