大数组问题
在做题时常发现题目要求要开很大的数组(多则百万甚至上亿)
此时,开long long 型的数组已经不管用了(不仅运行时间会卡爆,且本身不支持开这么大的数组)
此时可以想到用vector来等效替代这么大的数组,vectorq,q.max_size()可知向量里可以容纳1073741823个数据(亲测开一亿没有问题,就是程序运行有点慢)
有时候也会遇到要开非常大(如数百万,正常开肯定不行)的二维数组问题,此时也可以通过在容器里放容器来解决(vector<vector>q),即容器嵌套。
int p=1;
vector<vector<int>>b;
p=1;
for(int i=1;i<=10000;i++)
{
vector<int>c;
for(int j=1;j<=10000;j++)
c.push_back(p++);
b.push_back(c);
}
遍历嵌套容器仍然使用迭代器
vector<vector<int>>::iterator f;
f=b.begin();
for(f;f!=b.end();f++)
{
vector<int>d=*f;
vector<int>::iterator f2;
f2=(*f).begin();
for(f2;f2!=(*f).end();f2++)
cout<<*f2<<" ";
cout<<endl;
}