c++ - 初始化模板内的变量
问题描述
如果将整数或双精度数传递给函数,我的程序应该添加数字,或者如果它们是字符串,则将它们连接起来。
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
变量?
解决方案
初始化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;
}
推荐阅读
- c# - 如何有效地找到 System.Numerics.Vector 中的值索引
? - java - 如何在会话中存储jsp页面的onclick值?
- mysql - MySQL View 代替子查询不返回相同的结果
- html - 如何调整导航栏按钮的大小并使其适合屏幕宽度?
- vue.js - 单击后导航栏(移动视图)不关闭 - Vuejs
- python - OpenCV在视频中查找冻结帧
- python - 如何将一个类元素连接到另一个类?
- javascript - 使用 setTimeout() 后将组件返回到原始状态或强制重新渲染
- python - 来自 3D 阵列的 3D 切片
- python - 将函数应用于熊猫数据框的列