如何在<string>C++中打印矢量<矢量>?

How to print vector<vector<string>> in C++?

本文关键字:lt gt 矢量 打印 string C++      更新时间:2023-10-16

我在运行C++程序时得到一些值。 说,

vector<vector<string>> clusters; // clusters have some values

如何使用迭代器打印它们?

希望迭代器的"使用"不需要是明确的和预先可见的?

for( auto const& string_vec : clusters )
    for( auto const& s : string_vec )
        cout << s << endl;
//iterate over our outer vector
for(vector<vector<string> >::iterator it = clusters.begin(); it != clusters.end(); ++it) { 
    //obtain and iterate over the inner vector
    for(vector<string>::iterator it2 = *it.begin(); it2 != *it.end(); ++it2) {
        cout << *it2; //obtain and print our string
    }
}

这行得通吗?

相同,但使用算法:

typedef std::vector<std::vector<std::string>> VectorVectorString;
typedef VectorVectorString::const_iterator VVSConstIterator;
VectorVectorString clusters;
for(VVSConstIterator pVector = clusters.begin(), end = clusters.end(); pVector != end; ++pVector)
{
    const std::vector<std::string>& current = *pVector;
    std::copy(
        current.begin(), current.end(),
        std::ostream_iterator<std::string>(std::cout, " "));
    std::cout << std::endl;
}