这里的答案是:
来自 n2798(C++0x 草案):向量的元素是连续存储的,这意味着如果 v 是一个向量,其中 T 是 bool 以外的某种类型,那么它遵循恒等式 &v[n] == &v[0 ] + n 对于所有 0 <= n < v.size()。
该程序有效:
#include <iostream>
#include <vector>
#include <iterator>
using namespace std;
int main(){
int k;
cin >> k; cout << endl << "k = " << k << endl;
ostream_iterator<int> oi(cout, " ");
vector<vector<int> > vpi;
while(k--)
{
vpi.push_back(vector<int>(istream_iterator<int>(cin), istream_iterator<int>()));
cin.clear();
cout<<"k = "<< k <<endl;
copy(vpi[vpi.size()-1].begin(), vpi[vpi.size()-1].end(), oi);
cout<<endl;
}
}
当向量的元素必须具有相同的大小并且要存储的向量的大小事先不知道时,向量如何连续存储向量?
如果之前有人问过这个问题,我很抱歉,我找不到它,如果是这种情况,请给我一个链接。