2011-01-26 2 views
1

Я пытаюсь создать подстановки из части вектора. Смотри ниже.std :: next_permutation() из части вектора

vector<int> myArray; 
myArray.resize(5); 
myArray[0] = 1; 
myArray[1] = 2; 
myArray[2] = 3; 
myArray[3] = 4; 
myArray[4] = 5; 
int i = 0; 

do { 
    for (i = 0; i < myArray.size(); i++) { 
     printf("%i ", myArray[i]); 
    } 
    printf("\n"); 
} while (next_permutation(myArray.at(1), myArray.at(3))); 

Мне нужно, чтобы генерировать перестановки только между позициями 1 и 3. К сожалению vector::at() возвращается ссылка, но next_permutation() необходимо BidirectionalIterator в качестве параметра.

ответ

2

while (next_permutation(myArray.begin()+1, myArray.begin()+3)); должно работать

Смежные вопросы