有没有办法像在C ++普通库中的ruby中那样打印数组,还是我必须对扩展做一些事情?我知道有一种方法你可以做例如for循环,但有没有像你在ruby中的地方那样输入
print array
我想在c ++中做同样的事情
std::cout << array;
我做的研究是关于c ++如何能够打印整个数组,我无法找到他们只为数组进行正常打印的源。我的问题是,如果有机会打印没有外部函数的数组,只需要print whole array;
。
在C ++中没有这样的东西。我推荐使用
for(auto a : yourArray){
std::cout << a;
}
如果你需要经常使用它,你可以为它编写一个函数或模板。
在C ++中没有这么简单的方法,但你可以使用
for(auto string : yourArray){
std::cout << string;
}
这取决于Array是什么。它是一个stl容器还是你放在一起的东西?
在任何一种情况下,您都可以编写一个新的运算符<<来处理它:
std::ostream operator <<(std::ostrean s,const MyArray& mine)
{
for (const a& : mine)
s << a;
return s;
}
这可能看起来像语法光泽,但对于标准容器,您只需编写一次并将其用于任何向量:
template <typename T> std::ostream operator <<(std::ostream s, const std::vector<T>& mine)
{
for (const a& : mine)
s << a;
return s;
}
然后再次为set和map等编写它。我相信你可以做一个适用于任何具有迭代器的容器的定义,使用一些c ++ 14聪明,但这是一个起点。