据说C++里面有一个函数是统计一个数组里面有多少个相同的数?

KPRF2009 2011-11-12 10:53:02
我现在有一个边长为x,y这么大的矩阵里面只有0,1

我要统计边长是x1,y1(x1<=x,y1<=y)这块子面积里面有多少个1,据说有一个函数可以很快统计出来。

求解、、、
...全文
387 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qwer_boo 2011-11-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dizuo 的回复:]

C/C++ code

// count_if example
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

bool IsOdd (int i) { return ((i%2)==1); }

int main () {
int mycount;

vector<int……
[/Quote]
ryfdizuo 2011-11-12
  • 打赏
  • 举报
回复

// count_if example
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

bool IsOdd (int i) { return ((i%2)==1); }

int main () {
int mycount;

vector<int> myvector;
for (int i=1; i<10; i++) myvector.push_back(i); // myvector: 1 2 3 4 5 6 7 8 9

mycount = (int) count_if (myvector.begin(), myvector.end(), IsOdd);
cout << "myvector contains " << mycount << " odd values.\n";

return 0;
}
KPRF2009 2011-11-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zzcmx2008 的回复:]
这样问,还不如自己写个快
把数据放到vector或者数组中,然后再遍历,是1就统计
[/Quote]

我不是说的程序的执行效率 不是我写代码的时间
zzcmx2008 2011-11-12
  • 打赏
  • 举报
回复
这样问,还不如自己写个快
把数据放到vector或者数组中,然后再遍历,是1就统计
KPRF2009 2011-11-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 demon__hunter 的回复:]
std::count std::count_if
[/Quote]

写一个简单的例子行不?我还不会用。。。。
zzcmx2008 2011-11-12
  • 打赏
  • 举报
回复
使用stl,再用标准库算法去统计
机智的呆呆 2011-11-12
  • 打赏
  • 举报
回复
std::count std::count_if
iamnobody 2011-11-12
  • 打赏
  • 举报
回复
既然只是0和1,那么直接把所有元素的值相加就行了。 。。
由于你说的情况不是连续的内存,所以没有能只调用一次就算出的函数。

例:




int main(){
const int xmax = 10,ymax = 10;
int arr[xmax][ymax] = {0};
int x = 5,y = 6;
int sum = 0;
for(int i = 0; i < x; i++)
sum = std::accumulate(arr[i],arr[i]+ymax,sum);//计算sum + arr[i][0,1,2,...,ymax]的和。
std::cout<<sum;
system("pause");
return 0;

}

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧