二维数组和vector性能差别怎么这么大?

yingle2000 yingle2000 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
int tmp[256][256];
int a[256][256];
std::vector<std::vector<int> >vtmp;
//设置vtmp元素个数为[256][256],对tmp,vtmp中的元素进行赋值,使tmp[i][j] == vtmp[i][j]。
//...
time_t now;
now = time(NULL);
cout << ctime(&now) << endl;
for(int n = 0; n < 4096; n++)
for(int i = 0; i < 256; i++)
for(int j = 0; j < 256; j++)
{
a[i][j] = tmp[i][j];
a[i][j] += tmp[i][j];
a[i][j] /= tmp[i][j];
}
now = time(NULL);
cout << ctime(&now) << endl;
这段程序大约2次cout之间的时间差为10秒左右,但是把其中的tmp[i][j]改成vtmp[i][j]之后,程序运行了几分钟还没有结束。
不是说vector的性能基本相当于数组吗?怎么差别这么大?
...全文

相关推荐

评论 48
收藏 已收藏
分享
返回顶部
yingle2000
C++ 语言 65,214 成员 250,514 内容