【发布时间】:2021-05-12 13:05:24
【问题描述】:
我想要一个函数,它接收 template 为 std::vector 并打印向量中的任何内容,前提是它是 std::cout 中允许的数据类型。我相信这需要递归,因为 vector of vector of a vector...。例如,给定一维vector,
template< typename T>
void PrintVector(T vec)
{
for (unsigned int i = 0; i < vec.size(); i++){
std::cout << vec[i] << std::endl;
}
}
这段代码有一些问题。
1. 如果它是一个多维向量,这不起作用,我需要它(我猜这个语句:vec[i])递归地打印出该向量并执行如果有另一个向量,则相同。
2. 我还希望它引用模板中的矢量,因此我不会复制 1gb 大小的 3d 矢量来打印它,而只是引用所以我不要为此分配任何内存。
任何帮助将不胜感激!
【问题讨论】:
-
关于 2.:有什么问题?是什么阻止你参考它?
-
@bolov 我不知道怎么做。另外另一个问题是我什至不确定该语法是否正确。我需要它来接收
std::vector< TEMPLATE >而不是模板。 -
那么是时候从good c++ book开始了
-
我刚刚注意到您编辑了您的帖子以提出一个完全不同的问题。不要那样做!而是提出一个新问题。
-
@bolov 我不能。已达到我的问题限制