2

一般来说,我们可以做到

typedef std::vector<int> container1;
typedef std::vector<char> container2;

但看起来我们不能做类似的事情。

typedef vector container;
container<int> ins;

有没有办法做到这一点?我能想到的是使用宏。

4

1 回答 1

11

C++11 别名允许这样做

#include <vector>

template<class T>
using Vec = std::vector<T>;   
Vec<int> v;   // same as std::vector<int> v;

也看到这个

并且以类似的方式,您可以将 C++11 中的 typedef 重写为:

using container1 = std::vector<int>;
using container2 = std::vector<char>;

这些与您问题中的 typedef 完全相同。

于 2013-06-15T03:13:54.323 回答