Default template arguments

#include<iostream>
#include<vector>
#include<list>
//1. The default value of the second type parameter is vector<T>
template<typename T, typename T2 = std::vector<T> >
class MyClass {
	public:
		T2 data;
		MyClass() {
			std::cout<<" type 1. \n";
		}
		void setData(){
			for(int i=0;i<10;i++){
				data.push_back(i);
			}
			
		}
		void outPutData(){
			for(int i=0;i<10;i++){
				std::cout<<data.back()<<std::endl;
				data.pop_back();
			}
			
		}
};
int main() {
	MyClass<int> c1; //The second type parameter is vector<int>
	MyClass<int,std::list<int> > c2; //The second type parameter is list<int>
	c1.setData();
	c1.outPutData();
	
	c2.setData();
	c2.outPutData();
	
		return 0;
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326359195&siteId=291194637