1

嘿,我只是想知道在 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 向量,我想使用对这个函数的调用来打印两个向量,其中一个是双精度型的,另一个是整数型的。这是可能的还是我的整数会自动转换为双精度数?

谢谢

4

1 回答 1

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);
于 2013-09-21T21:54:57.603 回答