【问题标题】:Swap Function Utilizing Pointers使用指针的交换函数
【发布时间】:2017-11-02 04:09:43
【问题描述】:

因此,对于分配,我必须编写一个模板函数,该函数将成功交换任何类型的两个值。我还必须验证该函数也可以使用指针。显然,彻底的输出将展示指针的交换,但不会交换它们指向的值。

我对如何开始有了大致的了解,但不知道该去哪里。

这是我目前所拥有的。

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");

}

谢谢!

【问题讨论】:

  • 你是在问如何调用你的指针交换函数?
  • @user0042 那,如果这个逻辑对分配真的有效
  • 你试过一些代码来调用它吗?你的具体问题是什么?模板函数的逻辑看起来是正确的。
  • @user0042 是的,我不确定如何调用使用泛型的函数。我发布了我的主要外观。
  • 你的函数想要指向T的指针,所以用指针而不是字面值来调用它。

标签: c++ templates pointers generics swap


【解决方案1】:

您的模板函数需要指向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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    相关资源
    最近更新 更多