第一句可以通过编译并且可以运行,第二句无法通过编译。
因为C++的new返回对应类型的指针类型(动态分配内存)。所以new后面的类型的指针类型才是前面的类型。非要那么写,可以
vector<int> v = *new vector<int>(5);
new 是在动态内存中划分一块内存,返回的是这块内存的地址,需要指针类型的变量指向它.