У меня есть список целых чисел. (В настоящее время хранится в std :: vector, но для повышения эффективности мне нужно преобразовать его в набор. версия, я использую его следующим образом: (Я использую C++ 98 не C++ 11)Как получить элементы в std :: set два на два в C++
int res=0;
vector<vector<int> >costMatrix;
vector<int>partialSolution;
for(int i =0;i<partialSolution.size()-1;i++){
res+=costMatrix[partialSolution.get(i)][partialSolution.get(i+1)];
}
Итак, мне нужно сделать то же самое со структурой данных набора Но я не знаю, как. чтобы получить два элемента из набора в то время. Я могу получить partialSolution.get(i)
с ниже код, но я не мог получить partialSolution.get(i+1)
. есть ли кто-нибудь, чтобы помочь мне изменить код ниже?
// this time set<int> partialSolution
int res=0;
std::set<int>::iterator it;
for (it = partialSolution.begin(); it != partialSolution.end(); ++it)
{
res+=costMatrix[*it][];
}
«В настоящее время хранится в' станд :: VECTOR', но для повышения эффективности, мне нужно, чтобы преобразовать его на 'std:; set'" - это вряд ли улучшит производительность, 'std :: set' очень неаккуратно. – BoBTFish
В другом месте моего кода я ищу, содержит ли мой вектор определенный номер или нет. На самом деле я должен изменить эту часть. Но чтобы изменить это, я должен изменить часть, упомянутую выше. @BoBTFish – zwlayer
- целые числа, отсортированные в 'partialSolution'? –