0
我有一個set
4個矩形。每個矩形是長度爲&寬度的pair<int, int>
。 我嘗試產生這個集合的排列。但是,當我嘗試運行它時,此代碼會引發段錯誤 。我無法弄清楚這個問題。在C++中創建集合的排列時遇到問題
下面的代碼:
void permute(set<pair<int, int> >& rectangles, vector<pair<int, int> >& sequence) {
if(rectangles.empty()) {
// read this sequence.
return;
}
set<pair<int, int> >::iterator rect;
for(rect = rectangles.begin(); rect != rectangles.end(); rect++) {
rectangles.erase(*rect);
sequence.push_back(*rect);
permute(rectangles, sequence);
sequence.pop_back();
rectangles.insert(*rect);
}
}
謝謝。就是這樣! – saket
嗨,在上面的代碼片段中,更改'對'無處不在'int'導致分段錯誤,儘管您的更正。任何想法爲什麼? –
saket