首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

比较数组是不是相等

2014-01-14 
比较数组是否相等今天在C++ primer(第五版)上看见一个题目,比较两个数组是否相等,所以必须要知道这两个数

比较数组是否相等
今天在C++ primer(第五版)上看见一个题目,比较两个数组是否相等,所以必须要知道这两个数组的大小,C++11中提供了begin()和end()两个函数,此题好解。但是这让我想到了在vs2010等不支持C++11的环境下怎样让系统确定两个数组的大小?本人才疏学浅,刚开始C++,望各路神仙指点!
[解决办法]
如果你才开始学C++,就换《C++ Primer》第四版。
不要用第五版来浪费你的时间。
[解决办法]
C,C++ 数组定义可见的地方,可以用sizeof 计算。
C++ 可以用模板计算
template <typename T ,int N>
int Arrsize(T (&)[N])
{return N;}

int a[10];
int a[]={1,2,3,3,5,4};
int arrsize = sizeof(a)/sizeof(a[0]);

只能见到声明的地方
比如 
extern int a[];
(没有数组大小信息),不能计算出来。
如果有数组大小信息
比如 
extern int a[10];
则可以计算出来。


[解决办法]
2楼正解,用sizeof统计出字节数,然后用字节数除以该类型元素所占的字节数
例如:

#include <iostream>

using namespace std;

int main()
{
int a[4] = { 0 };
cout << sizeof(a) / 4 << endl;
return 0;
}

热点排行