首页 > 解决方案 > 初始化模板内的变量

问题描述

如果将整数或双精度数传递给函数,我的程序应该添加数字,或者如果它们是字符串,则将它们连接起来。

template<class T>
T add(vector<T> v)
{
  T temp;
  for(int i = 0; i < v.size(); i++)
  {
    temp += v[i];
  }
  return temp;
}   

如果我让 temp 未初始化,它不会在我传递给它的整数的向量中添加元素,但如果我将它初始化为 0,它不会连接字符串向量中的向量元素。

我应该如何初始化temp变量?

标签: c++templates

解决方案


初始化temp到第一个元素并遍历其余元素:

template<class T>
T add(vector<T> v)
{
  T temp = v[0];
  for(int i = 1; i < v.size(); i++)
  {
    temp += v[i];
  }
  return temp;
} 

推荐阅读