以下程序
#include <vector>
#include <iostream>
using namespace std;
vector <int> a;
void main(int argc, char* argv[])
{
a.reserve(1);
a[0]=4;
vector <int> b(a);
cout<<b[0];
}#include <vector>
#include <iostream>
using namespace std;
vector <int> a(1);
void main(int argc, char* argv[])
{
a[0]=4;
vector <int> b(a);
cout<<b[0];
}
为什么用了reserve分配后就不能用拷贝构造函数
#include <vector>
#include <iostream>
using namespace std;
vector <int> a;
void main(int argc, char* argv[])
{
a.reserve(1);
a[0]=4;
vector <int> b(a);
cout<<b[0];
}#include <vector>
#include <iostream>
using namespace std;
vector <int> a(1);
void main(int argc, char* argv[])
{
a[0]=4;
vector <int> b(a);
cout<<b[0];
}
为什么用了reserve分配后就不能用拷贝构造函数
vector对象的数据长度并未改变还是空对象。
a.reserve(1);不会改变a的内容