如何打印矢量数组?

时间:2011-12-16 02:52:39

标签: c++ gdb

我有一个名为nVectors的矢量数组。

vector<int>* nVectors[21];
for (int i = 1; i <= 20; i ++) {
    nVectors[i] = generateVector(i);
}

我可以打印单个矢量的所有成员,但是当涉及到矢量数组时,我仍然不知道如何打印数组中的所有矢量。

使用矢量数组的所有成员并使用我预定义的方法pvector打印可能是一个迭代器可以解决这个问题吗?但我不知道如何在gdb中进行迭代。

1 个答案:

答案 0 :(得分:0)

std::array<std::vector<int>*, 21> nVectors;

for(std::array<std::vector<int>*>::iterator i = nVectors.begin();
    i != nVectors.end();
    ++i)
{
    for(std::vector<int>::iterator it = (*i)->begin();
        it != (*i)->end();
        ++it)
    {
        std::cout << *it << " ";
    }
}

std::cout << std::endl;

或者,在C ++ 11中:

std::vector<int>* nVectors[21];

for(auto &i : nVectors)
{
    for(auto &it : i)
    {
        std::cout << *it << " ";
    }
}

std::cout << std::endl;