嘿,我只是想知道在c ++中有可能在我的程序中有一个函数,作为输入采用向量或向量。这是我想要的一个例子:
void PrintValues(const std::string& title, std::vector<std::vector<double>>& v)
{
std::cout << title << std::endl;
for(size_t line = 0; line < v.size(); ++line)
{
for(size_t val = 0; val < v[line].size(); ++val)
{
std::cout << v[line][val] << " ";
}
std::cout << std::endl;
}
std::cout << std::endl;
}
我想要在这个程序中打印两个2d矢量,我想使用这个函数调用打印一个是双打和其他整数。这是可能的还是我的整数会自动转换为双打?
由于
答案 0 :(得分:4)
使您的功能成为模板
template <typename T>
void PrintValues(const std::string& title, std::vector<std::vector<T> >& v)
{
std::cout << title << std::endl;
for(size_t line = 0; line < v.size(); ++line)
{
for(size_t val = 0; val < v[line].size(); ++val)
{
std::cout << v[line][val] << " ";
}
std::cout << std::endl;
}
std::cout << std::endl;
}
使用:
std::vector<std::vector<int> > x;
std::vector<std::vector<double> > y;
PrintValues("Int",x);
PrintValues("Doubles",y);