ALL,
Этот вопрос является продолжением этого. Я думаю, что STL пропускает эту функциональность, но это просто мое ИМХО.
Теперь на вопрос.
Рассмотрим следующий код:
class Foo
{
public:
    Foo();
...........
private:
    int paramA, paramB;
    std::string name;
};
int main()
{
    std::vector<Foo> foo;
    Sorter sorter;
    sorter.paramSorter = 0;
    std::sort( foo.begin(), foo.end(), sorter );
}
struct Sorter
{
    bool operator()(const Foo &foo1, const Foo &foo2)
    {
         switch( paramSorter )
         {
             case 0:
                 return foo1.name < foo2.name;
             case 1:
                 return foo1.paramA < foo2.paramB;
             case 2:
                 return foo1. paramA > foo2.paramB;
         }
    }
private:
    int paramSorter;
}
В любой момент времени вектор может быть пересортирован. Класс также имеет методы геттера, которые используются в структуре сортировщика.
Каким будет наиболее эффективный способ вставки нового элемента в вектор?
Ситуация у меня есть:
У меня есть сетка (электронная таблица), которая использует отсортированный вектор класса. В любой момент времени вектор может быть повторно отсортирован, и сетка отобразит отсортированные данные соответствующим образом.
Теперь мне нужно будет вставить новый элемент в вектор/сетку. Я могу вставить, а затем повторно отсортировать, а затем повторно отобразить всю сетку, но это очень неэффективно, особенно для большой сетки.
Любая помощь будет оценена.
