Эй, мне просто интересно, возможно ли в 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;
}
У меня есть два двухмерных вектора, которые я хочу напечатать в этой программе, и я хочу использовать вызов этой функции, чтобы напечатать как один заполнен двойными, так и другие целые числа. Возможно ли это или мои конверты будут автоматически конвертированы в двойные?
Спасибо
Сделайте вашу функцию шаблоном
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);
Других решений пока нет …