1.俩整数,不使用中间变量交换其值:

int& intswap(int& a, int& b)
{
b ^= a;
a ^= b;
b ^= a;
return b;
}

2.C++中俩string交换字符串

string & strswap(string & a, string & b)
{
a=a.append(b);
b= a.substr(,a.length()-b.length());
a=a.substr(b.length(),a.length());
return b;
}

3.char*字符串交换值//不使用动态内存,执行1000w次耗时2s,使用动态内存耗时3s。

//不使用动态内存:
char* cswap(char* a, char* b)
{
int i = ;
int alen = strlen(a),blen= strlen(b);
strcat(a, b);
for (;i < alen;i++)
{
b[i] = a[i];
}
b[i] = '\0';
for (i = ;i < blen;i++)
{
a[i] = a[alen + i];
}
a[i] = '\0';
return a;
}
// 使用动态内存
int charswap(char *a, char *b)
{
char* temp=NULL;
int n = strlen(a) > strlen(b) ? (strlen(a)+1) : (strlen(b)+1);
temp = (char*)malloc(n * sizeof(char));
strcpy(temp, a);
strcpy(a, b);
strcpy(b, temp);
free(temp);
return ;
}

函数调用:

 #include<iostream>
#include<string.h>
using namespace std;
int main(void)
{
clock_t start, finish;
char a[] ="hellohellohellohellohellohellohellohellohellohello";
char b[] = "hihihihihihihihihihihi";
int alen = strlen(a);
int blen = strlen(b);
start = clock();
for (int i = ;i < ;++i)
{
cswap(a, b);
//charswap(a, b);
}
finish = clock();
double t = (finish - start)/CLOCKS_PER_SEC ;
cout << "costs: " << t << "s" << endl;
cout << "a= " << a << endl;
cout << "b= " << b << endl;
return ;
}

执行结果:

最新文章

  1. [转]Asp.Net 用户验证(自定义IPrincipal和IIdentity)
  2. JavaScript slice() 方法
  3. Guid与id区别
  4. 【Python】 sorted函数
  5. 转 PHP在JVM上的实现JPHP
  6. 动态下载 Yahoo 网络数据存入 Microsoft SQL Server 再 Matlab 调用的一个完整例子
  7. CAS单点登录之mysql数据库用户验证及常见问题
  8. 时隔3年半Spring.NET 2.0终于正式Release了
  9. python的特殊方法:
  10. PHP HTTP
  11. (转)Linux下Apache 限速模块安装笔记
  12. NuGet 问题及小技巧
  13. 注册表对比工具(Regshot) V2.0.1 中文绿色版
  14. w3school之CSS学习笔记
  15. PayPal为什么从Java迁移到Node.js
  16. Windows下python2与python3兼容设置
  17. 一个简单的案例带你入门Dubbo分布式框架
  18. [转帖]你所不知道的C和C++运行库
  19. linux nfs
  20. mysql数据库中,查看当前支持的字符集有哪些?字符集默认的collation的名字?

热门文章

  1. win php composer安装
  2. Software-Defined Networking: A Comprehensive Survey
  3. 运行PHP出现No input file specified错误解决办法
  4. 学习日记15-1布局页同时引用多个model
  5. [BZOJ4558]:[JLoi2016]方(容斥+模拟)
  6. Taylor Swift -《Fearless》
  7. 数据存储-cookie、sessionstorage、localstorage
  8. VMware 虚拟化编程(10) — VMware 数据块修改跟踪技术 CBT
  9. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第5节 String类_7_字符串的转换相关方法
  10. MVC 源码系列之路由(二)