求助,如何typedef一个泛型类

狐狸小十 2017-02-28 06:15:53
比如我想 typedef std::vector MyVector
之后能MyVector<int>这样写,保留泛型用法
只能#define MyVector vector 或者一个个typedef吗?
...全文
332 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cutmelon 2017-03-01
  • 打赏
  • 举报
回复
引用 4 楼 qq_31709097 的回复:
[quote=引用 3 楼 cutmelon 的回复:] 这是什么奇怪的需求,直接派生一个vector类呗
template<class T>
class MyVector:public std::vector<T>
{
};
其实主要是要个它的指针类型,有办法吗 LPVector<int>p=new...这样,比较顺眼[/quote]还真是奇葩。。。不过还是有办法的,需要c++11
#include <vector>

template<class T>
class MyVector:public std::vector<T>
{
};

template<typename T> using LPVector=MyVector<T>*;

void main()
{
	MyVector<int> v;
	LPVector<int> p=&v;
}
幻夢之葉 2017-02-28
  • 打赏
  • 举报
回复
这三种能用就好,真的没太多差
zhangsongcui 2017-02-28
  • 打赏
  • 举报
回复
#include <vector>

template<typename T>
using MyVector = std::vector<T>;

int main() {
    MyVector<int> vec;
}
狐狸小十 2017-02-28
  • 打赏
  • 举报
回复
引用 3 楼 cutmelon 的回复:
这是什么奇怪的需求,直接派生一个vector类呗
template<class T>
class MyVector:public std::vector<T>
{
};
其实主要是要个它的指针类型,有办法吗 LPVector<int>p=new...这样,比较顺眼
cutmelon 2017-02-28
  • 打赏
  • 举报
回复
这是什么奇怪的需求,直接派生一个vector类呗
template<class T>
class MyVector:public std::vector<T>
{
};
狐狸小十 2017-02-28
  • 打赏
  • 举报
回复
引用 1 楼 yshuise 的回复:
typedef std::vector<int> MyVector; c++11可以使用using my = std::vector<int>;
我想保留泛型功能,只是换个名,再加个lpvector类型 不用宏的话,有这样的语法吗
yshuise 2017-02-28
  • 打赏
  • 举报
回复
typedef std::vector<int> MyVector; c++11可以使用using my = std::vector<int>;

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧