欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

int add(x,y)和void add(&x,y)的速度比较

程序员文章站 2022-05-31 17:33:15
...

在不开O2的情况下,void add(&x,y)的速度快于int add(x,y)。且数组整体速度快于vector。

在开O2的情况下,对于数组来说,void快于int;对于vector来说,int快于void。且vector整体速度快于数组。

测试代码:

#include<bits/stdc++.h>
#define maxn 100005
using namespace std;
const int mod = 998244353;
int a[100000005];
vector<int>A(100000005);
inline int add(int x,int y){return (x+=y)>=mod?x-mod:x;}
inline void Add(int &x,int y){(x+=y)>=mod&&(x-=mod);}
int main()
{
	int n=100000000;
	int t=clock();
	for(int i=1;i<=n;i++) a[i]=add(i,i);
	cout<<clock()-t<<endl;
	t=clock();
	for(int i=1;i<=n;i++) A[i]=add(i,i);
	cout<<clock()-t<<endl;
	t=clock();
	for(int i=1;i<=n;i++) Add(a[i],n-i+1);
	cout<<clock()-t<<endl;
	t=clock();
	for(int i=1;i<=n;i++) Add(A[i],n-i+1);
	cout<<clock()-t<<endl;
}

相关标签: 奇技淫巧