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;