好文档 - 专业文书写作范文服务资料分享网站

c++经典代码大全

天下 分享 时间: 加入收藏 我要投稿 点赞

char c1='A',c2='a';

cout<<\ c2=\ swap(c1,c2);

cout<<\ c2=\ cout<<\

//交换两个结构变量中的数据 student s1={1001,\ student s2={1011,\ cout<<\ \

cout<

cout<

cout<<\ cout<<\ \

cout<

cout<

//定义名为swap的函数模板用于交换两个变量中的数据 template void swap(T &x, T &y) {

T temp; temp=x; x=y; y=temp; }

#include

//声明函数模板的原型语句

template void swap(T *x, T *y);

//定义一个结构类型 struct student { int n;

char name[20]; float grade; };

//在main()函数中测试swap()函数模板 void main(void) {

//交换两个int型变量中的数据 int m=3,n=5;

cout<<\ n=\ swap(&m,&n);

cout<<\ n=\ cout<<\

//交换两个double型变量中的数据 double x=3.5,y=5.7;

cout<<\ y=\ swap(&x,&y);

cout<<\ y=\ cout<<\

//交换两个char型变量中的数据 char c1='A',c2='a';

cout<<\ c2=\ swap(&c1,&c2);

cout<<\ c2=\ cout<<\

//交换两个结构变量中的数据 student s1={1001,\ student s2={1011,\ cout<<\ \

cout<

cout<

swap(&s1,&s2);

cout<<\ cout<<\ \

cout<

cout<

//定义名为swap的函数模板用于交换两个变量中的数据 template void swap(T *x, T *y) {

T temp; temp=*x; *x=*y; *y=temp; }

#include

//定义输入函数模板

template void input(char *str,T &x) { cout<>x; }

//定义输出函数模板

template void output(char *str,T x) { cout<

//在main()函数中测试输入输出函数模板 void main(void) {

//输入输出int型数据 int a,b;

input(\ output(\ b=3*a;

output(\ output(\

cout<<\

//输入输出double型数据 double x,y; input(\ output(\ y=2*x;

output(\

46

cout<<\

//输入输出char型数据 char c1;

input(\

output(\

cout<<\

//输入输出字符串数据 char string[80];

input(\ output(\}

#include #include

//显示数组的函数模板

template void arr_put(T arr[],int size) { for (int i=0 ;i<=size;i++) cout<

//选择排序数组的函数模板

template void sort(T arr[],int size) { T temp; int i,j;

for (i=0;i

for (j=i+1;j<=size;j++) if (arr[i]<=arr[j]) {

temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } }

//在main()函数中测试数组排序的函数模板 void main(void) {

//用排序函数模板处理int型数组 cout<<\

int a[]={1,5,2,7,9,0,10,-1}; arr_put(a,7); sort(a,7); arr_put(a,7);

//用排序函数模板处理double型数组 cout<<\

double x[]={1.2,2.1,1.414,1.732}; arr_put(x,3); sort(x,3); arr_put(x,3);

//用排序函数模板处理char类型数组 cout<<\ char str[80]; cout<<\ cin>>str;

int size=strlen(str);

arr_put(str,size); sort(str,size); arr_put(str,size); }

#include #include

//显示数组的函数模板

template void arr_put(T arr[],int size) { for (int i=0 ;i

//选择法对数组排序的函数模板

template void sort(T arr[],int size) { T temp; int i,j;

for (i=0;i

for (j=i+1;jarr[j]) {

temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } }

//二分查找法的函数模板

template int binary_search(T array[], T value, int size) {

int found = 0;

int high = size, low = 0, mid;

mid = (high + low) / 2;

cout<<\ while ((! found) && (high >= low)) {

if (value == array[mid]) found = 1;

else if (value < array[mid]) high = mid - 1; else

low = mid + 1;

mid = (high + low) / 2; }

return((found) ? mid: -1); }

//main()函数中使用处理数组的函数模板 void main(void) {

//处理int型数组

int array[10]={1,3,5,7,9,2,4,6,8,10};

//显示数组初值 arr_put(array,10);

//对数组排序并显示

47

sort(array,10); arr_put(array,10);

//查找数组

cout<<\of search: \3, 10)<

cout<<\of search: \2, 10)<

cout<<\of search: \9, 10)<

cout<<\of search: \5, x.set_value(7.5);

cout<<\}

#include //定义栈的尺寸

const int SIZE = 100;

//定义处理栈的类模板接口 template class stack { T stck[SIZE]; int tos; 10)<

cout<<\

//处理字符串型数组 char ch1,str[]=\ int size=strlen(str);

//显示数组初值 arr_put(str,size);

//对数组排序并显示 sort(str,size); arr_put(str,size);

//查找数组

cout<<\ cin>>ch1;

cout<<\of search: \size)<

#include

//定义名为ex_class的类模板 template class ex_class {

T value; public:

ex_class(T v) { value=v; }

void set_value(T v) { value=v; } T get_value(void) {return value;} };

//main()函数中测试ex_class类模板 void main(void) {

//测试int类型数据

ex_class a(5),b(10);

cout<<\ cout<<\

//测试char类型数据 ex_class ch('A');

cout<<\ ch.set_value('a');

cout<<\

//测试double类型数据 ex_class x(5.5);

cout<<\

public:

stack(void) { tos = 0;

cout << \ }

~stack(void) {

cout << \ }

void push(T); T pop(void); };

//定义栈的成员函数

template void stack::push(T i) {

if(tos==SIZE) {

ch1, cout << \ return; }

stck[tos++] = i; }

template T stack::pop(void) {

if(tos==0) {

cout << \ return 0; }

return stck[--tos]; }

//main()函数中测试stack类模板 void main(void) {

//处理int类型数据的栈

cout<<\ stack a; a.push(1); a.push(2);

cout << a.pop() << \ cout << a.pop() << endl;

//处理double类型数据的栈

cout<<\ stack b; b.push(99.3); b.push(-12.23);

cout << b.pop() << \

48

cout << b.pop() <

//处理char类型数据的栈

cout<<\ stack c;

for(int i=0; i<10; i++) c.push((char) 'A' + i); for(i=0; i<10; i++) cout <

#include

//定义名为ex_class的类模板

template class ex_class {

T1 value1; T2 value2; public:

ex_class(T1 v1,T2 v2) { value1=v1; value2=v2; }

void set_value(T1 v1,T2 v2) { value1=v1; value2=v2; }

void put_value(void) {

cout<<\ cout<<\ } };

//main()函数中测试ex_class类模板 void main(void) {

//测试int和double类型数据 ex_class a(5,1.5);

cout<<\ a.put_value();

a.set_value(100,3.14); a.put_value();

//测试double和int类型数据 ex_class b(0.5,5);

cout<<\ b.put_value();

b.set_value(1.732,100); b.put_value();

//测试char和int类型数据 ex_class c('a',5);

cout<<\ c.put_value();

c.set_value('B',100); c.put_value();

//测试int和int类型数据 ex_class d(5,10);

cout<<\

d.put_value();

d.set_value(100,200); d.put_value(); }

#include #include

#include #include

using namespace std;

//创建一个list容器的实例LISTINT typedef list LISTINT;

//创建一个list容器的实例LISTCHAR typedef list LISTCHAR;

void main(void) {

//--------------------------

//用list容器处理整型数据 //--------------------------

//用LISTINT创建一个名为listOne的list对象 LISTINT listOne; //声明i为迭代器 LISTINT::iterator i;

//从前面向listOne容器中添加数据 listOne.push_front (2); listOne.push_front (1);

//从后面向listOne容器中添加数据 listOne.push_back (3); listOne.push_back (4);

//从前向后显示listOne中的数据

cout<<\ for (i = listOne.begin(); i != listOne.end(); ++i) cout << *i << \ cout << endl;

//从后向后显示listOne中的数据 LISTINT::reverse_iterator ir;

cout<<\ for (ir =listOne.rbegin(); ir!=listOne.rend();ir++) { cout << *ir << \ }

cout << endl;

//使用STL的accumulate(累加)算法

int result = accumulate(listOne.begin(), listOne.end(),0); cout<<\ cout<<\

//--------------------------

//用list容器处理字符型数据 //--------------------------

//用LISTCHAR创建一个名为listOne的list对象 LISTCHAR listTwo;

49

//声明i为迭代器 LISTCHAR::iterator j;

//从前面向listTwo容器中添加数据 listTwo.push_front ('A'); listTwo.push_front ('B');

//从后面向listTwo容器中添加数据 listTwo.push_back ('x'); listTwo.push_back ('y');

//从前向后显示listTwo中的数据

cout<<\ for (j = listTwo.begin(); j != listTwo.end(); ++j) cout << char(*j) << \ cout << endl;

//使用STL的max_element算法求listTwo中的最大元素并显示

j=max_element(listTwo.begin(),listTwo.end());

cout << \maximum element in listTwo is: \}

#include #include

using namespace std;

typedef vector INTVECTOR;

//测试vector容器的功能 void main(void) {

//vec1对象初始为空 INTVECTOR vec1;

//vec2对象最初有10个值为6的元素 INTVECTOR vec2(10,6);

//vec3对象最初有3个值为6的元素

INTVECTOR vec3(vec2.begin(),vec2.begin()+3);

//声明一个名为i的双向迭代器 INTVECTOR::iterator i;

//从前向后显示vec1中的数据

cout<<\ for (i =vec1.begin(); i !=vec1.end(); ++i) cout << *i << \ cout << endl;

//从前向后显示vec2中的数据

cout<<\ for (i =vec2.begin(); i !=vec2.end(); ++i) cout << *i << \ cout << endl;

//从前向后显示vec3中的数据

cout<<\ for (i =vec3.begin(); i !=vec3.end(); ++i) cout << *i << \ cout << endl;

50

//测试添加和插入成员函数 vec1.push_back(2); vec1.push_back(4);

vec1.insert(vec1.begin()+1,5);

vec1.insert(vec1.begin()+1,vec3.begin(),vec3.end()); cout<<\ for (i =vec1.begin(); i !=vec1.end(); ++i) cout << *i << \ cout << endl;

//测试赋值成员函数 vec2.assign(8,1);

cout<<\

for (i =vec2.begin(); i !=vec2.end(); ++i) cout << *i << \ cout << endl;

//测试引用类函数

cout<<\ cout<<\ cout<<\ cout<<\

//测试移出和删除 vec1.pop_back();

vec1.erase(vec1.begin()+1,vec1.end()-2);

cout<<\ for (i =vec1.begin(); i !=vec1.end(); ++i) cout << *i << \ cout << endl;

//显示序列的状态信息

cout<<\ cout<<\ cout<<\ cout<<\

//vector序列容器的运算

cout<<\ cout<<\}

#include #include

using namespace std;

typedef deque INTDEQUE;

//从前向后显示deque队列的全部元素

void put_deque(INTDEQUE deque, char *name) {

INTDEQUE::iterator pdeque;

cout << \

for(pdeque = deque.begin(); pdeque != deque.end(); pdeque++)

cout << *pdeque << \ cout<

//测试deqtor容器的功能

c++经典代码大全

charc1='A',c2='a';cout<<\c2=\swap(c1,c2);cout<<\c2=\cout<<\//交换两个结构变量中的数据students1={1001,\students2={1011,\cout<<\\
推荐度:
点击下载文档文档为doc格式
2014w2qlws175lm25rnh
领取福利

微信扫码领取福利

微信扫码分享