我可以在声明定义中避免类型冗余吗?

And*_*eas 1 c++ types

有没有办法避免std::vector<int>在这些行上写两次?

std::vector<int>* numbers = new std::vector<int>(7);
Run Code Online (Sandbox Code Playgroud)

(Typedef不计算在内.)

Naw*_*waz 5

是.仅在C++ 11中:

auto numbers = new std::vector<int>(7); //C++11 only
Run Code Online (Sandbox Code Playgroud)

在这里,类型numbers由编译器推断,它原来是std::vector<int>*这是你写在你的代码是什么.

可是等等.为什么要首先使用new

你有什么有力的理由吗?很可能不是.改为使用自动对象:

std::vector<int> numbers; //no new
Run Code Online (Sandbox Code Playgroud)