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

问题描述 投票:-3回答:3

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

print array

我想在c ++中做同样的事情

std::cout << array;

我做的研究是关于c ++如何能够打印整个数组,我无法找到他们只为数组进行正常打印的源。我的问题是,如果有机会打印没有外部函数的数组,只需要print whole array;

c++ arrays ruby
3个回答
2
投票

在C ++中没有这样的东西。我推荐使用

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

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


1
投票

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

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

0
投票

这取决于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聪明,但这是一个起点。

© www.soinside.com 2019 - 2024. All rights reserved.