c++之find()函数

摘要:
问题:是否有可以指定搜索方向的函数。有时我想从尾部开始。
c++之find()函数

在数组或者向量中,找到一个数,返回它的下标

#include <iostream>     // std::cout
#include <algorithm>    // std::find
#include <vector>       // std::vector

int main () {
  // using std::find with array and pointer:
  int myints[] = { 10, 20, 30, 40 };
  int * p;

  p = std::find (myints, myints+4, 30);
  if (p != myints+4)
    std::cout << "Element found in myints: " << *p << '
';
  else
    std::cout << "Element not found in myints
";

  // using std::find with vector and iterator:
  std::vector<int> myvector (myints,myints+4);
  std::vector<int>::iterator it;

  it = find (myvector.begin(), myvector.end(), 30);
  if (it != myvector.end())
    std::cout << "Element found in myvector: " << *it << "  " << it - myvector.begin() << '
';
  else
    std::cout << "Element not found in myvector
";

  return 0;
}

备注:需要注意的确定搜索范围时,头部是name, 尾部为name+nums, 不是name + num - 1, 以前在使用std::max()函数时就犯过这样的错误。
疑问:是否存在函数可以指定查找的方向,有时候我希望从尾部开始查找。

免责声明:文章转载自《c++之find()函数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vss安装,设置以及与vs2005联合项目操作(转) 子曰Jquery学习笔记(7)--京东导航菜单下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用三个线程按顺序循环打印ABC三个字母

有两种方法:semaphore信号量和mutex互斥锁。需要注意的是C++11已经没有semaphore。 C++ 并发编程(六):信号量(Semaphore) - 止于至善 - SegmentFault 思否https://segmentfault.com/a/1190000006818772 线程按顺序执行(迅雷笔试题) - CSDN博客 htt...

zbar配置

1、下载安装zbar,选择full全部安装。也可以从这里下载。  2、由于官方给的是32位的,继续下载64位的zbar 替换文件: 将ZBarWin64-master\lib 文件夹下 libzbar64-0.lib 文件复制到ZBar安装路径下的 lib 文件夹; 将 ZBarWin64-master\lib 文件夹下 libzbar64-0.dl...

封装hiredis——C++与redis对接(一)(string的SET与GET操作)

  在菜鸟教程自学了redis,总想着像Mysql一样,在C/C++中进行对接。于是查询了一些资料,最后找到了hiredis。然而直接用它的话,难免有点不方便。于是,对其进行封装。   hiredis直接去git上克隆,地址:https://github.com/redis/hiredis。   下载好之后,由于其自带Makefile,只要make一下就编...

【C++】map容器的用法

检测map容器是否为空: 1 #include <iostream> 2 #include<map> 3 #include<string> 4 using namespace std; 5 int main() 6 { 7 //检测容器是否为空 8 map<string, strin...

C++中find_if

总结:find_if针对查找的对象中包含指针需要进行比较            find则更偏向于普通的数值或者字符比较             两者都可以应用于自定义的类,只需在类中重载==运载符 函数调用符()说白了其实就是代替函数指针,调用对应重载的()的那个定义函数,()运算符只能在类中重载 STL的find,find_if函数提供了一种对数组、S...

在Lambda表达式中进行递归调用

Lambda表达式是一个匿名的方法,在开发期我们是不知道其方法名是什么的,所以我们要怎么递归调用呢? 如果你看过我这文章《让您知道您的方法是被何“人”调用 》的话,你应该会“啊哈”的拍一下头脑,思路就出来了,没错!!就是直接用StackFrame获取当前执行的方法,然后直接Invoke即可。示例代码:     class Test    {       ...