在哪种方式搜索容器中的元素的方式更有效
visual Which way to search for elements in a container is more efficient
我只是在容器或字符串中迭代/订阅值,以查看这些值是否是我想要的。我只想知道哪种方式(数字1和数字2之间)更有效。
bool isnumber (const char character)
{
return(character>=48 && character<=57);
}
template <typename T> bool numbers1(const T &str)
{
if(!str.empty())
{
for (auto it=str.cbegin(); it!=str.cend(); ++it) if (!isnumber(*it)) return false;
return true;
}
else return false;
}
template <typename T> bool numbers2(const T &str)
{
if(!str.empty())
{
for (auto &i : str) if(!isnumber(i)) return false;
return true;
}
else return false;
}
基于c 中的循环范围本质上只是用于使用begin()和end()的循环的速记,通常与迭代器一起使用。在数字2中,编译器扩展了循环以使用str.begin和str.End。编译级别上唯一真正的区别是您的手写迭代器循环使用cbegin()和cend()而不是begin()和end()。
。只是进一步阅读:如果您完成实现Begin()和End()的类,那么您将能够在该类上执行基于范围的循环:如何使我的自定义类型与'range--基于循环"?
相关文章:
- 从嵌套在std::映射中的std::列表中删除元素的最佳方式
- 不允许在向量中添加更多元素
- 查找最小的下一个更大的元素
- 哪种方式更快?究竟发生了什么,我们没有看到什么?
- 如果第一个元素包含任何零,则我的程序以不希望的方式运行
- clang++ 是否以更轻松的方式处理系统标头?
- C++通过别名指针以静默方式将错误的类型分配给数组元素
- 从2D矢量中找出最小尺寸的向量元素的更好方法
- 从矢量中最快的擦除元素或更好地利用内存(排序基数)
- 在 OpenGL 中渲染对象的哪种方式更有效
- 在哪种方式搜索容器中的元素的方式更有效
- 哪种方式更快
- 哪种方式更好地获得64位整数中较低的32位
- 哪种方式更适合定义类型特征或行为
- 哪种方式更适合阵列访问
- STL 方式在容器上的循环中同时访问更多元素
- 当使用getline时,哪种方式更好
- c++ ||添加两个矩阵的方式更容易输出
- 指针加1遍历数组的元素是否更快?
- 哪种沟通方式更有效