关于vector
  • 板块学术版
  • 楼主STLvector
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/1/13 11:47
  • 上次更新2023/10/24 04:28:03
查看原帖
关于vector
637565
STLvector楼主2023/1/13 11:47

先看三段代码:

#include <bits/stdc++.h>
using namespace std;

const int N=1e5+5;

int main()
{
	vector<int> a;
	for(int i=0;i<N;i++)
		a.push_back(i);
	return 0;
}//0.0234s
#include <bits/stdc++.h>
using namespace std;

const int N=1e5+5;

int main()
{
	vector<int> a;
	for(int i=0;i<N;i++)
		a.insert(a.begin(),i);
	return 0;
}//0.5903s
#include <bits/stdc++.h>
using namespace std;

const int N=1e5+5;
int a[N+5];

int main()
{
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<N;j++)
			a[j+1]=a[j];
		a[0]=i;
	}
	return 0;
}//23.03s

网上(?)说vector的内存是连续的,所以按理说非尾部插入比较慢(实际上确实是的(1&2)),但是为什么比普通数组插入快这么多?

2023/1/13 11:47
加载中...