c++ copy函数的实现,该怎么解决
c++ copy函数的实现
为什么编译总是过不去 提示信息为有多个函数模板与参数实例匹配
我也没有加<algorithm>头文件啊 求大神指导啊
------解决思路----------------------
你这没一句话对的。back_inserter在iterator里。不用back_inserter肯定crash。
lz的问题是因为碰到了ADL(Argument-dependent name lookup)。因为参数里有来自std的东西,所以ADL也会在namespace std里同时找copy的定义,这就ambiguous了。
------解决思路----------------------
重复定义了 指明 ::copy 或 std::copy
为什么编译总是过不去 提示信息为有多个函数模板与参数实例匹配
我也没有加<algorithm>头文件啊 求大神指导啊
#include <iostream>
#include <vector>
#include <iterator>
using std ::cin; using std ::cout; using std ::endl; using std ::back_inserter;
using std ::vector;
template< class In , class Out >
void copy( In begin , In end , Out dest )
{
while( begin != end ) // 只要扫描区间存在
{
* dest ++ = * begin ++ ;
}
}
int main( void )
{
vector< int > v_in;
for( int i = 0 ; i != 10 ; i ++ )
{
v_in.push_back( i );
}
vector< int > v_out;
copy( v_in.begin() , v_in.end() , back_inserter( v_out ) );
return 0;
}
------解决思路----------------------
你这没一句话对的。back_inserter在iterator里。不用back_inserter肯定crash。
lz的问题是因为碰到了ADL(Argument-dependent name lookup)。因为参数里有来自std的东西,所以ADL也会在namespace std里同时找copy的定义,这就ambiguous了。
------解决思路----------------------
重复定义了 指明 ::copy 或 std::copy