9.8节中swap函数的问题

来源:10-8 从手写全排列到STL的实现

没有蜡笔的小新

2020-04-18

老师,您在9.8节中的swap函数如下:
void swap(char* a, char* b) {
char temp = *a;

}
但是在调用的时候是:
swap(*pChar, *pPosition);
知道pChar和pPosition都是指针,取 *pchar,*pPosition就是取值,但是上面swap函数传递的参数是char *。故此处调用的swap应该不是上面的自己定义的swap,应该是系统自带的swap函数。

老师,您看是不是。

写回答

1回答

quickzhao

2020-04-18

这个问题你说的对,这里确实是调用了系统的swap方法,可以修改一下swap的实现:

void swap(char& a, char& b)

{

char temp = a;

a = b;

b = temp;

}


1
0

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3939 学习 · 1107 问题

查看课程