STL学习笔记1

来源:互联网 发布:jre-7u9-windows-x64 编辑:程序博客网 时间:2024/06/05 16:11
1.
#include<iostream>#include<vector>#include<iterator>using namespace std;template<class T, class D>class Member{public:Member(T t, D d): name(t), sal(d){}void print();private:T name;D sal;};template<class T, class D>void Member::print(){cout<<name<<" "<<sal<<endl;}//====================================================int main(){typedef Member<string,double> M;vector<M> v;v.push_back(M("Linda",75000));v.push_back(M("Robert",60000));vector<M>::iterator it = v.begin();cout<<"Entire vector:"<<endl;while(it!= v.end())(it++)->print();cout<<endl;cout<<"Return form front()"<<endl;v.front().print();return 0;}


编译这段代码会出现如下错误

test1.cc:20: error: 鈚emplate<class T, class D> class Member?used without template parameters
test1.cc: In function 鈜oid print()?
test1.cc:22: error: 鈔ame?was not declared in this scope
test1.cc:22: error: 鈙al?was not declared in this scope
[root@localhost stl.test]# 
[root@localhost stl.test]# 

提示test1.cc:20: error: 鈚emplate<class T, class D> class Member?used without template parameters

没有template parameters

修改代码

template<class T, class D>

void Member<T, D>::print()

template<class T, class D>void Member<T, D>::print(){cout<<name<<" "<<sal<<endl;}
这样就通过编译了

输出结果:

Entire vector:
Linda 75000
Robert 60000


Return form front()
Linda 75000

2.

  iterator erase(iterator _First, iterator _Last);函数的_Last 是指要删除段最后一位的下一位,是c++的半开区间[  )。

原创粉丝点击