C++中如何在一个二维数组中查找某个值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中如何在一个二维数组中查找某个值相关的知识,希望对你有一定的参考价值。
简单的方法还是利用索引查找指定的值。
下面是示例代码。这里为了简单起见,所操作的数据都是int型。如果需要灵活操作数据类型,可以运用类型模板。
#include <iostream>using namespace std;
//value 需要查找的值
//arr 在指定数组中查找
//row 数组行数
//col 数组列数
//在数组中找到返回这个数,没有找到就返回-1
int Value(int value, int arr[3][2], int row, int col)
int i, j;
for(i = 0 ; i < row ; i++)
for (j = 0 ; j < col ; j++)
if(value == arr[i][j])
return arr[i][j];
return -1;
int main()
//开辟3行2列的二维数组
int arr[3][2] = 1,2,3,4,5,6;
cout << Value(4, arr, 3, 2) << endl;
return 0;
希望可以帮助到您。
参考技术A 思路:先定义一个字符数组,接着输入字符串赋值,输入需要查找的字符,遍历字符数组,查找输入的字符,如果找到停止遍历输出位置,如果遍历结束还没找到,输出没有找到。参考代码:
//参考代码 #include<iostream>using namespace std;int main() char ch[100],c; int i; cin>>ch; cin>>c; for(i=0;i<strlen(ch);i++) if(ch[i]==c) cout<<i; break; if(i==strlen(ch)) cout<<"没有找到!"; return 0;/*运行结果:dsafwera2*/
如何在c ++中查找函数是不是在一定时间内返回某个值?
【中文标题】如何在c ++中查找函数是不是在一定时间内返回某个值?【英文标题】:How to find if a function returns a certain value for a certain amount of time in c++ ??如何在c ++中查找函数是否在一定时间内返回某个值? 【发布时间】:2015-01-27 10:17:02 【问题描述】:我正在开展一个项目,我正在将用户的不同身体姿势转换为语音。每当用户做出手势时,手势识别函数都会返回某个值,否则返回零。但是我不希望程序出错,所以我想检查函数是否在一定时间内返回该特定值。我知道我可以使用延迟或计数器来做到这一点,但是在 c++/visual studio 中有没有更有效的方法来做到这一点? 我想做这样的事情
if (gesture_function==somevalue_for_some_milliseconds)
我知道我能做到 如果(手势功能==值) 延迟毫秒() 如果(手势功能==值) 是的手势 别的 没有做出手势
干杯......
【问题讨论】:
大概你有一些线程从相机获取新帧并在它们上调用一些手势识别函数:该线程必须要么从你的相机 API 获得“回调”,要么在帧之间阻塞。无论哪种方式,您都可以保留产生相同手势的帧数的计数器 - 如果手势更改覆盖“lastest_gesture_seen”变量并将计数器重置为 0。当计数器达到某个值时,对其进行操作。如果它很脆弱,您可以使用循环缓冲区和容差,例如如果最后 10 个手势函数中的 8 个产生的值相同,则您尊重它。more efficient way
是什么意思?更高效的编程时间、更高效的内存资源、更高效的执行时间或更“高效”的鲁棒性/质量?!?
我只是想知道是否有执行此操作的命令。例如,在 opencv 中,我们有 WaitKey(delay)=="KEYVALUE" 通过这样做我可以找到某个键是否被按下了一段时间(由延迟给出)并相应地继续
afaik 没有操作系统或硬件解决方案来观察内存位置的变化,但如果你创建一个类并使用 getter 和 setter 应该很容易实现;)
【参考方案1】:
为什么不只是每隔几毫秒轮询一次,然后创建一个用于创建移动平均线的大数组?
每 100 毫秒将手势识别转换为真或假 -> 在一个数组中最多存储 50 个值 -> 检查所有值的平均值是否高于 T,使得 T 是介于 0.00 和 1.00 之间的容差因子。 -> 如果移动平均 > T,则手势被识别。
【讨论】:
以上是关于C++中如何在一个二维数组中查找某个值的主要内容,如果未能解决你的问题,请参考以下文章