Csdn论坛关于一个模板特化不能执行的问题的修改

好吧,现学现卖,表示标题有点长啊。

问题不在描述了,粘贴格式不对。

只把我修改好的特化版本代码贴出:

#include <string>
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;

template <typename Type> 
int count(Type *a, int sz, Type which )
{
	int n = 0;
	for(int i=0; i < sz; i++)
		if ( a[i] == which )
			n++;
	return n;
}

template<>//这里也要写法要注意!
int count<string>(string* a,int sz,string which)
{
	int n = 0;
	for(int i=0; i < sz; i++)
		if ( a[i] == which )
			n++;
	return n;
}

int main()
{
	int a[10] = {1,5,6,9,2,123,5,78,54,5};
	double b[6] = {1.0,2.0,3.0,2.0,6.0,2.0};
	string s[6] = {"aa","bb","aa","cc","dd","aa",};

	cout << "the number of 5 is: " << count(a,10,5) << endl;
	cout << "the number of 2.0 is: " << count(b,6,2.0) <<endl;

	cout << "the number of string \"aa\" is: " << count(s,6,string("aa")) << endl;

	system("pause");
	return 0;
}

  

原文地址:https://www.cnblogs.com/xiangshancuizhu/p/2709404.html