STL学习笔记1 —— 模板函数和模板类

1. 模板函数的定义

  模板函数的声明需要使用 template <typename T>:

template <typename T>
T square(T x){
    
    
	return x*x;
}

2. 模板类的定义

template <typename T>
class myVector{
    
    
	private:
		T array[1000];
		int size;
	public:
		myVector():size(0) {
    
    };
		void push(T element){
    
    
			array[size++] = element;
		}
		T getVal(int n){
    
    
			return array[n];
		}
		int getSize(){
    
    
			return size;
		}
		void print(){
    
    
			for (int i=0; i<size; i++){
    
    
				cout << array[i] << " ";
			} 
		}
};

template <typename T>
myVector<T> operator* (myVector<T> &vect1, myVector<T> &vect2){
    
    
	
}

3. 使用举例

  下面构建一个简易的vector容器:

#include <iostream>
using namespace std;

template <typename T>
T square(T x){
    
    
	return x*x;
}

template <typename T>
class myVector{
    
    
	private:
		T array[1000];
		int size;
	public:
		myVector():size(0) {
    
    };
		void push(T element){
    
    
			array[size++] = element;
		}
		T getVal(int n){
    
    
			return array[n];
		}
		int getSize(){
    
    
			return size;
		}
		void print(){
    
    
			for (int i=0; i<size; i++){
    
    
				cout << array[i] << " ";
			} 
		}
};

int main()
{
    
    
//	int a = 5;
//	double b = 5.0;
//	cout << square(a) << "\n";
//	cout << square(b) << endl; 
	
	myVector<int> v;
	v.push(1);
	v.push(3);
	v.push(5);
	v.print();
	cout << v.getSize() << endl;
	cout << v.getVal(0) << endl;
	
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/qq_41140138/article/details/109100860