使用指针交换函数
Swap Function Utilizing Pointers
因此,对于一项作业,我必须编写一个模板函数,该函数将成功交换任何类型的两个值。我还必须验证该函数也可以使用指针。显然,完整的输出将演示指针的交换,但不会交换它们指向的值。
我对如何开始有一个大致的想法,但不知道该去哪里。
这是我目前的情况。
template <typename T>
void swap(T*& first, T*& second)
{
T* a = nullptr;
a = first;
first = second;
second = a;
std::cout << first << " " << second << " ";
}
我已经有了函数原型,但不知道从这里可以做什么,关于如何调用这个函数的任何建议以及它是否真的会为我提供所需的输出?
这是我的主要内容
int main()
{
swap(10, 20);
system("pause");
}
谢谢!
您的模板函数需要指向 T
的指针作为参数。你的代码
int main()
{
swap(10, 20);
system("pause");
}
不使用指针调用它,而是使用整型文字值。你应该使用什么来调用你的函数是
int main() {
int var1 = 42;
int var2 = 15;
int* pvar1 = &var1;
int* pvar2 = &var2;
swap(pvar1,pvar2);
}
因此,对于一项作业,我必须编写一个模板函数,该函数将成功交换任何类型的两个值。我还必须验证该函数也可以使用指针。显然,完整的输出将演示指针的交换,但不会交换它们指向的值。
我对如何开始有一个大致的想法,但不知道该去哪里。
这是我目前的情况。
template <typename T>
void swap(T*& first, T*& second)
{
T* a = nullptr;
a = first;
first = second;
second = a;
std::cout << first << " " << second << " ";
}
我已经有了函数原型,但不知道从这里可以做什么,关于如何调用这个函数的任何建议以及它是否真的会为我提供所需的输出?
这是我的主要内容
int main()
{
swap(10, 20);
system("pause");
}
谢谢!
您的模板函数需要指向 T
的指针作为参数。你的代码
int main()
{
swap(10, 20);
system("pause");
}
不使用指针调用它,而是使用整型文字值。你应该使用什么来调用你的函数是
int main() {
int var1 = 42;
int var2 = 15;
int* pvar1 = &var1;
int* pvar2 = &var2;
swap(pvar1,pvar2);
}