gpt4 book ai didi

c++ - 二维容器的通用打印

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:03:11 27 4
gpt4 key购买 nike

此模板打印二维 vector 的内容

您将如何推广此模板以使其适用于每个 STL 容器?

template<class T>
void printVector(std::vector<std::vector<T>> const &matrix) {
for (std::vector<T> row : matrix) {
for (T val : row) {
std::cout << val << " ";
}
std::cout << '\n';
}
}

是否有“打印”允许我打印任何东西,无论我放入什么? (n维容器、字符串等?)

最佳答案

只需采用任何类型并使用基于范围的循环。您唯一的问题是您指定的是 std::vector

template<class T>
void print2Dcontainer(const T &matrix)
{
for (const auto &row : matrix)
{
for (const auto &val : row) std::cout << val << ' ';
std::cout << '\n';
}
}

我上面的版本不安全地传递会导致编译错误的东西(例如传递 7)。可以添加花哨的 SFINAE 来消除这个潜在的问题,但我只会对库代码这样做。

关于c++ - 二维容器的通用打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55768115/

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