在模板类中使用函数指针vector,使用iterator类型时编译报错
如下代码编译不过
template < class T > class MyClass {
public:
typedef void (*Handle) (T);
static vector < Handle > v;
static void Reg(Handle h) {
v.push_back(h);
};
static void Run(T t) {
vector < Handle >::iterator it = v.begin(); // 报错 expected `;' before "it"
};
};
1. 把typedef中的T改成确定类型比如int,double就不再报错;
2. Reg函数没有报错,说明使用vector是没有问题的,可是不能使用iterator该如何遍历呢?
template < class T > class MyClass {
public:
typedef void (*Handle) (T);
static vector < Handle > v;
static void Reg(Handle h) {
v.push_back(h);
};
static void Run(T t) {
vector < Handle >::iterator it = v.begin(); // 报错 expected `;' before "it"
};
};
1. 把typedef中的T改成确定类型比如int,double就不再报错;
2. Reg函数没有报错,说明使用vector是没有问题的,可是不能使用iterator该如何遍历呢?
...全文
相关推荐
c++ 简易模板类vector
简易版vector,用模板类实现。实现函数有:capacity,reserve,push_back,pop_back,size,swap,empty,clear,erase。
C++精进篇(六)之― Vector、iterator、Array
Vector用法: (1)vector 标识符 ; (2)vector 标识符(最大容量) ; (3)vector 标识符(最大容量,初始所有值); (4) int i[4] = {12,3,4,5}; vector vi(i , i+2); //得到i索引值为3以后的值; (5)vector //vi 定义2维的容器;记得一定要有空格,不然会报错 vector
vector容器与iterator迭代器
vector容器与iterator迭代器,有两者的区别和联系,供大家学习理解
详解C++中的vector容器及用迭代器访问vector的方法
使用迭代器iterator可以更方便地解引用和访问成员,当然也包括vector中的元素,本文就来详解C++中的vector容器及用迭代器访问vector的方法,需要的朋友可以参考下
单例模板类+vector排序
单例模板类,实现vector中结构体数据的排序。


