Класс элемента, который раньше хранился в векторе с другими подобными элементами.
Но теперь он был удален и перемещен в собственное поле в родительском объекте.
class OldParent {
vector<char> OldCollection = { 'A', 'B', 'C' };
}
class NewParent {
char A = 'A';
vector<char> NewCollection = { 'B', 'C' };
}
Тип, который содержится в векторе, значительно сложнее, чем символ, он является вектором sh структуры.
Таким образом, фактический исходный тип будет выглядеть примерно так:
struct ActualType {
string val1;
int val2;
double val3;
}
vector<vector<ActualType>> OldCollection;
// vector that has been separated out
vector<ActualType> SeparatedCollection;
Проблема заключается в том, что во многих исходных кодах используются итераторы для всей старой коллекции, и, как я думал, я мог бы Реализация этого изменения будет заключаться в создании итератора, который будет работать так, как если бы разделенное поле никогда не разделялось. Таким образом, большая часть исходного кода не должна была быть изменена.
Однако я определенно открыт и для новых идей.
Вариант использования выглядит следующим образом: изменение означает, что одно из чисел будет постоянно храниться вне вектора.
vector<int> nNums = {1,2,3};
void UseCase(int x)
{
int toRemove = 0;
for (auto& num : nNums)
{
if (num - x < 0)
{
toRemove++;
x -= num;
}
else
{
num -= x;
break;
}
for (int i = 0; i < toRemove; ++i)
nNums.erase(nNums.begin());
}
}