C++ 中两个数据交换总结
2017-10-26 17:17
148 查看
// 数据交换.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
//采取引用方式
template< typename T>
void EXchange(T & a,T & b)
{
T c;
c = a;
a = b;
b = c;
}
//采取指针方式(通过指针访问变量)
template< typename T>
void EXchange1(T *p,T *q)
{
T c;
c = * p;
* p = * q;
* q = c;
}
//采用亦或方式
template < typename T>
void EXchange2(T &a,T &b)
{
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
//采用标准运算
template < typename T>
void EXchange3(T & a,T & b)
{
a = a + b;
b = a - b;
a = a - b;
}
//二级指针运算
template < typename T>
void EXchange4(T **m,T **n)
{
T c;
c = ** m;
**m = ** n;
**n = c;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a=5,b=6;
EXchange(a,b);
cout<<"a="<<a<<";"<<"b="<<b<<endl;
EXchange1(&a,&b);
cout<<"a="<<a<<";"<<"b="<<b<<endl;
EXchange2(a,b);
cout<<"a="<<a<<";"<<"b="<<b<<endl;
double p=2.36,q=2.53;
EXchange3(p,q);
cout<<"p="<<p<<";"<<"q="<<q<<endl;
double *m,*n;
m=&p;
n=&q;
EXchange4(&m,&n);
cout<<"p="<<p<<";"<<"q="<<q<<endl;
return 0;
}
//
#include "stdafx.h"
#include <iostream>
using namespace std;
//采取引用方式
template< typename T>
void EXchange(T & a,T & b)
{
T c;
c = a;
a = b;
b = c;
}
//采取指针方式(通过指针访问变量)
template< typename T>
void EXchange1(T *p,T *q)
{
T c;
c = * p;
* p = * q;
* q = c;
}
//采用亦或方式
template < typename T>
void EXchange2(T &a,T &b)
{
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
//采用标准运算
template < typename T>
void EXchange3(T & a,T & b)
{
a = a + b;
b = a - b;
a = a - b;
}
//二级指针运算
template < typename T>
void EXchange4(T **m,T **n)
{
T c;
c = ** m;
**m = ** n;
**n = c;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a=5,b=6;
EXchange(a,b);
cout<<"a="<<a<<";"<<"b="<<b<<endl;
EXchange1(&a,&b);
cout<<"a="<<a<<";"<<"b="<<b<<endl;
EXchange2(a,b);
cout<<"a="<<a<<";"<<"b="<<b<<endl;
double p=2.36,q=2.53;
EXchange3(p,q);
cout<<"p="<<p<<";"<<"q="<<q<<endl;
double *m,*n;
m=&p;
n=&q;
EXchange4(&m,&n);
cout<<"p="<<p<<";"<<"q="<<q<<endl;
return 0;
}
相关文章推荐
- C++学习笔记27 交换两个数据swap
- c++指针学习笔记--交换两个字符串数据
- C++中两个数据交换的几种实现方式
- c++指针学习笔记--交换两个字符串数据收藏
- C/C++语言的点滴(一) -- 实现两个任意类型的数据的交换
- C++交换两个数据的值
- 两个数间的交换(按位操作不用中间变量temp即可实现两个数据的交换)C++按位与运算交换数据vs2013环境
- 交换两个数据的值而不采用新的存储单位(C++实现)
- Java线程总结(十):并发包------两个线程交换数据Exchanger
- 交换两个int类型数值(总结分析,理解记忆)
- 使用 C++ 处理 JSON 数据交换格式
- Visual Studio C/C++ 连续两个 int 数据所占的内存地址之间相差12?
- 交换数据方法总结
- [C++学习总结]数据类型篇
- 寻找两个值中更大值的方法总结c++代码
- 小白常用C\C++数据类型及其长度总结 (2010-01-05 16:50:49)
- 一组MATLAB和 C++数据交换类的设计
- Python实现:斐波那契数列、交换两个变量的值、从一组数据中找出最大最小值
- C/C++中定义一个宏用以交换两个数(总结自CSDN)