Kia*_*rot 1 c++ iterator auto c++11
我试图在函数中推导出迭代器的类型,该函数已经用模板推导出了参数的类型.我想要实现的是替换关键字auto,它在C++ 11标准中具有类似的功能.最初我有以下功能:
template<typename Type> bool activeExtension(Type &arr)
{
for (auto it=arr.begin(),
ite=arr.end();
it!=ite;
++it)
{
if (*it != 0)
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
这适用于C++ 11标准的完美编译.但事情发生了变化,我不能再使用这些功能了.
我正在尝试在没有关键字auto的情况下实现相同的功能.所以我想到了模板.
到目前为止,我尝试的是:
template<typename Type> bool activeExtension(Type &arr)
{
for (Type::iterator it=arr.begin(),
ite=arr.end();
it!=ite;
++it)
{
if (*it != 0)
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
你会怎么解决这个问题?
注意:我通常使用以下类型调用此函数,
template <class T>
struct Generic_t {
typedef std::vector<T> Array;
};
Run Code Online (Sandbox Code Playgroud)
因为我必须实例化具有不同类型的向量.