当管理vector数组,其中up.get()相当于是指向了数组的指针,所以使用->
。但是不知道为什么不能使用*up.get()[i]
以及up[i]
结构。
#include<iostream>
#include<vector>
#include<memory>
using namespace std;
int main(int argc,char **argv)
{
// unique_ptr<vector<int>> up=make_unique<vector<int>>();
unique_ptr<vector<int>> up=make_unique<vector<int>>(3,0);
for(int i=0;i<3;i++)
{
// up.get()->emplace_back(i);
up.get()->at(i)=i+1;
}
for(int i=0;i<3;i++)
{
cout<<up.get()->at(i)<<" ";
}
cout<<endl;
return 0;
}
//int数组版本
#include<iostream>
#include<vector>
#include<memory>
using namespace std;
int main(int argc,char **argv)
{
unique_ptr<int[]> up=make_unique<int[]>(10);
for(int i=0;i<10;i++)
{
up[i]=i;
}
for(int i=0;i<10;i++)
{
cout<<up[i]<<endl;
}
return 0;
}