C ++打印一个像在ruby中一样的数组

时间:2017-11-09 17:31:20

标签: c++ arrays ruby

有没有办法打印数组,就像你在C ++普通库中的ruby中那样,或者我是否需要对扩展做一些事情?我知道你有一种方法可以做例如for循环,但有没有像你在ruby中的地方那样输入

-s

我想在c ++中做同样的事情,你输入类似

的东西
print array

我所做的研究是关于c ++如何能够打印整个数组的地方,我无法找到他们只为数组进行正常打印的源。我的问题是,是否有机会打印没有外部函数的数组,而只是std::cout << array;

3 个答案:

答案 0 :(得分:2)

C ++中没有这样的东西。我建议使用

for(auto a : yourArray){
    std::cout << a;
}

如果你需要经常使用它,你可以为它编写一个函数或模板。

答案 1 :(得分:1)

C ++中没有这么简单的方法,但是您可以使用

for(auto string : yourArray){
    std::cout << string;
}

答案 2 :(得分:0)

这取决于Array是什么。它是一个stl容器还是你放在一起的东西?

在任何一种情况下,您都可以编写一个新的运算符&lt;&lt;处理它:

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聪明,但这是一个起点。 / p>