gpt4 book ai didi

C++ : iterate through a vector of set of vectors

转载 作者:行者123 更新时间:2023-11-28 02:58:01 27 4
gpt4 key购买 nike

我想要这样的东西:

{ {0,1},{0,2},{0,3},{0,4}...... {255,255} }  ---> (1)

经过一些处理后,我必须得到这样的东西:

 { {0,1},{0,2},{0,3} }
{ {0,4} }
{ {5,6},{255,255} }

因此,最初一个大集合由许多子集组成。每个子集包含两个值。经过一些处理后,(1) 中的一个大集合像上面那样分解。

现在我想遍历 (1) 中的集合,并从包含两个元素的每个子集中获取每个值。

这是我的代码。请指导我如何提取子集值。

CrtBestPartitionDouble 对应于一个由子集组成的大集合。subgroup 是由两个元素组成的子集doublegroup是由所有子集组成的集合

    vector<set<vector<int> > > CrtBestPartitionDouble;
vector<set<vector<int> > > ::iterator itr;

set<vector<int> > doublegroup;
set<vector<int> >::iterator itr2;
vector<int>::iterator itr3 ;
for(int k=0; k <5; k++)
{
for(int j=0; j <5; j++)
{ vector<int> subgroup;
subgroup.push_back(k);
subgroup.push_back(j);
doublegroup.insert(subgroup);
}


}
CrtBestPartitionDouble.push_back(doublegroup);

for ( itr = CrtBestPartitionDouble.begin(); itr != CrtBestPartitionDouble.end(); ++itr ) {

// Iterate each set
for ( itr2 = itr->begin(); itr2 != itr->end(); ++itr2 ) {

// Iterate each subset
for ( itr3 = itr2->begin(); itr3 != itr2->end(); ++itr3 ) {
std::cout << *itr3;
}
}
}

它给我以下错误:

ST.cpp: In function ‘void StateTableGenerator()’:
ST.cpp:460:39: error: no match for ‘operator=’ in ‘itr3 = itr2.

最佳答案

你可以用这段代码遍历所有的值,我不确定这是不是你想要的

   typedef vector<set<set<int> > > CrtBestPartitionDoubleType;
CrtBestPartitionDoubleType CrtBestPartitionDouble;

// Iterate each vector element
for ( CrtBestPartitionDoubleType::iterator itr = CrtBestPartitionDouble.begin(); itr != CrtBestPartitionDouble.end(); ++itr ) {

// Iterate each set
for ( set<set<int> >::iterator itr2 = itr->begin(); itr2 != itr->end(); ++itr2 ) {

// Iterate each subset
for ( set<int>::iterator itr3 = itr2->begin(); itr3 != itr2->end(); ++itr3 ) {
std::cout << *itr3;
}
}
}

关于C++ : iterate through a vector of set of vectors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21546907/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com