首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

举个例, 某函数只允许使用双向迭代器解决思路

2012-04-24 
举个例,某函数只允许使用双向迭代器一旦使用了其他类型的迭代器,函数就使用错误的例子,谁能举例,[解决办法

举个例, 某函数只允许使用双向迭代器
一旦使用了其他类型的迭代器, 函数就使用错误的例子, 谁能举例,

[解决办法]
用 iterator_traits萃取迭代器类型即可

C/C++ code
template<class T>void func( T arg ){    func( arg , iterator_traits<T>::iterator_category() );}template<class T>void func( T arg , bidirectional_iterator_tag ){}template<class T>void func( T arg , random_access_iterator_tag );//不实现,使用随机迭代器的话 链接 错误int main(){    list<int> x;    func( (char*)0 );    func( x.begin() );} 

热点排行