两者都是给类型设置一个别名,区别是using可以给模板类设置别名,而typedef则不能模板类设置设置别名。其余情况没有什么区别。
#include
using namespace std;
template
using myvector=vector;
int main(){
myvector iv;
return 0;
}
编译通过。
#include
using namespace std;
template
typedef vector myvector;
int main(){
myvector iv;
return 0;
}
编译报错error: template declaration of ‘typedef’。
而已经推演过的模板类是可以用typedef设置别名的
#include
using namespace std;
typedef vector intvector;
int main(){
intvector iv;
return 0;
}