C++ 如何访问嵌套的stl元素?

C++ 如何访问嵌套的stl元素?,c++,stl,C++,Stl,我有以下代码: set< vector<int> > set_of_things; vector<int> triplet(3); //set_of_things.push_back(stuff) - adding a number of things to the set 您可以使用迭代器: for ( std::set<vector<int> >::iterator it = set_of_things.begin() ;

我有以下代码:

set< vector<int> > set_of_things;
vector<int> triplet(3);

//set_of_things.push_back(stuff) - adding a number of things to the set
您可以使用迭代器:

for ( std::set<vector<int> >::iterator it = set_of_things.begin() ; 
      it != set_of_things.end() ; 
      it++ )
{
   // *it is a `vector<int>`
}
for(std::set::iterator it=set_of_things.begin();
it!=一组东西。结束();
it++)
{
//*它是一个矢量`
}
在C++11中,可以使用
auto
代替
std::set::iterator

如果不修改迭代器,则应使用常量迭代器。

使用迭代器:

for ( std::set<vector<int> >::iterator it = set_of_things.begin() ; 
      it != set_of_things.end() ; 
      it++ )
{
   // *it is a `vector<int>`
}
for(std::set::iterator it=set_of_things.begin();
it!=一组东西。结束();
it++)
{
//*它是一个矢量`
}
在C++11中,可以使用
auto
代替
std::set::iterator


如果不修改迭代器,则应改用
常量迭代器。

这是C++11中引入的新的基于范围的
循环:

for (auto const & v : set_of_things)
{
    for (auto it = v.cbegin(), e = v.cend(); it != e; ++it)
    {
        if (it != v.cbegin()) std::cout << " ";
        std::cout << *it;
    }
    std::cout << "\n";
}
for(自动const&v:set\u of \u things)
{
对于(自动it=v.cbegin(),e=v.cend();it!=e;++it)
{

如果(it!=v.cbegin())std::cout这是C++11中引入的新的基于范围的
for
循环:

for (auto const & v : set_of_things)
{
    for (auto it = v.cbegin(), e = v.cend(); it != e; ++it)
    {
        if (it != v.cbegin()) std::cout << " ";
        std::cout << *it;
    }
    std::cout << "\n";
}
for(自动const&v:set\u of \u things)
{
对于(自动it=v.cbegin(),e=v.cend();it!=e;++it)
{

如果(it!=v.cbegin())std::cout@Jon:或者“legacy-C++”要求应该在问题中明确?:-)所采取的要点,但是当目标是提供正确、实用和教育性的解决方案时,那么责任就在知识更丰富的一方身上。:-@Jon:或者“legacy-C++”要求应在问题中明确?:-)所采取的要点,但当目标是提供正确、实用和教育性的解决方案时,那么责任在知识更渊博的一方身上。:-)所以*it[0]、*it[1]、*it[2]应该是一组元素?这不适用于me@c0smikdebris我没那么说。
*它是元素(类型
vector
)@c0smikdebris当然,实际上没有人能让你了解诸如指针/迭代器解引用和运算符优先级之类的基本内容。所以*it[0]、*it[1]、*it[2]应该是集合中的元素?这对me@c0smikdebris我没那么说。
*它是元素(类型
vector
)@c0smikdebris当然,实际上没有人能让你了解指针/迭代器解引用和运算符优先级等基本内容。
#include <prettyprint.hpp>
#include <iostream>

std::cout << set_of_things << std::endl;