gpt4 book ai didi

c++ - 我可以编写一个可以同时处理容器和简单变量的模板函数吗?

转载 作者:行者123 更新时间:2023-11-28 00:11:43 25 4
gpt4 key购买 nike

我举下面的例子来说明我的问题:

  template<typename T>
void write_numerical_array(const std::vector<T> &nArray)
{
typename std::vector<T>::const_iterator it = nArray.begin();
while(it!=nArray.end())
{
std::cout<<*it<<std::endl;
it++;
}


}
int main(int,char*[])
{

std::vector<int> nArray;
for(int i=0; i<10; i++)
nArray.push_back(i);

write_numerical_array ( nArray);
return 0;
}

在上面的代码中,函数可以处理C++容器。我在想我是否可以写一个更通用的函数来同时处理简单的变量。例如:

 int main(int,char*[])
{
float value =100;
write_numerical_array(value);

return 0;
}

我尝试用这个函数来做,但是失败了:

 template<typename T>
void write_numerical_array(T &nArray)
{
typename T::const_iterator it = nArray.begin();
while(it!=nArray.end())
{
std::cout<<*it<<std::endl;
it++;
}


}

最佳答案

在您的示例中,您可以只添加一个重载(不太专业):

template<typename T>
void write_numerical(const std::vector<T>& v)
{
for (const auto &e : v) {
std::cout << e << std::endl;
}
}

template<typename T>
void write_numerical(const T &e)
{
std::cout << e << std::endl;
}

Live Demo

关于c++ - 我可以编写一个可以同时处理容器和简单变量的模板函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32732897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com