如何将函数 sumVec 转换为模板函数

米格尔圣地亚哥

我得到了这个代码(我知道它是西班牙语的,如果需要,我可以翻译)他们给了我函数 SumVec。该函数的作用是接收两个数组(整数指针)和一个整数(大小)作为参数,并返回一个指向两个向量或数组之和的指针。我必须转换它,以便它可以接收任何类型,而不仅仅是整数。我知道您通过使用“模板”使用模板来做到这一点,但我只做过简单的类,我不知道如何使用指针来做到这一点。有什么帮助吗?

编码

#include <iostream>
#include <cstdlib>
using namespace std;
int * sumVec(int*, int*, int);
int main() {
int n, nCol, nFil = 0;
//Arreglo unidimensional din�mico
int *ptr, *suma, size;
cout << "Cuantos Items va a procesar:";
cin >> size;
ptr = new int[size];//Asignando memoria al arreglo
//input
for (int i = 0;i<size;i++) {
cout << "Ingrese el numero de Items NO." << i + 1 << " :";
cin >> ptr[i];
}
//Mostrando el contenido del archivo
for (int i = 0;i<size;i++) cout << "\nItem. NO." << i + 1 << " :" << ptr[i];
cout << endl;

suma = sumVec(ptr, ptr, size);

//Mostrando el contenido de la suma
for (int i = 0;i<size;i++) cout << "\nSuma Item. NO." << i + 1 << " :" << suma[i];
cout << endl;

delete[]ptr;//Liberando la memoria asignada al arreglo unidimensional.

return 0;
}
int * sumVec(int* Array1, int* Array2, int Size){
  int *ptr = new int[Size];
  for(int i=0; i<Size; i++)
    ptr[i]= Array1[i] + Array2[i];

  return ptr;
}
大卫

就算你的目标是改写sumVec功能,您只需用前缀你的函数template<typename T>和更换每一个int通过T在你的函数。但我建议保留int索引类型。

template<typename T>
T * sumVec(T* Array1, T* Array2, int Size) {
  T *ptr = new T[Size];
  for(int i=0; i<Size; i++)
    ptr[i]= Array1[i] + Array2[i];

  return ptr;
}

请注意,您必须调用之前定义您的函数,例如https://ideone.com/ZAyCLs

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++-如何将函数转换为模板函数

来自分类Dev

如何将模板类中的模板函数转换为函数指针

来自分类Dev

如何将转换转换为函数?

来自分类Dev

如何将函数转换为MooTools?

来自分类Dev

如何将向量转换为函数

来自分类Dev

如何将组合函数转换为置换函数?

来自分类Dev

如何将递归函数转换为迭代函数?

来自分类Dev

如何将函数转换为管道友好函数?

来自分类Dev

如何将MATLAB函数转换为R函数?

来自分类Dev

MATLAB:如何将(sym)函数转换为匿名函数?

来自分类Dev

如何将普通函数转换为类中的函数?

来自分类Dev

如何将JavaScript函数转换为JSON

来自分类Dev

如何将凌乱的代码块转换为函数

来自分类Dev

libsigc ++如何将函数转换为插槽?

来自分类Dev

如何将匿名函数转换为方法值?

来自分类Dev

如何将Lambda转换为简单的Java函数

来自分类Dev

如何将字符串转换为函数?

来自分类Dev

如何将函数变量转换为div id名称?

来自分类Dev

如何将Scala Map转换为部分函数

来自分类Dev

如何将委托函数转换为内联等待

来自分类Dev

Scala如何将案例类转换为函数?

来自分类Dev

如何将tapply函数转换为for循环?

来自分类Dev

如何将训练好的模型转换为函数?

来自分类Dev

如何将原始代码转换为函数示例

来自分类Dev

如何将基于函数的数据管道转换为OOP?

来自分类Dev

如何将say_whee函数转换为lambda?

来自分类Dev

如何将jQuery动画函数转换为纯JS

来自分类Dev

R:如何将值矩阵转换为函数

来自分类Dev

如何将TSQL聚合函数转换为Postgresql