tdf#133699 Slow sorting of a column

reserve inside a loop is a pessimization, since it breaks the
logarithmic resizing of the std::vector data area.

Also use the std::vector::insert method, instead of std::copy, since
the insert method will perform less resizing operations.

On my machine, this takes the sort operation from 25s to less than 1s.

Change-Id: I30b99d42c56abc5a4ad5c133c7579fac3952173c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96929
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/sc/source/core/data/column4.cxx b/sc/source/core/data/column4.cxx
index 3ca9a28..06f4684 100644
--- a/sc/source/core/data/column4.cxx
+++ b/sc/source/core/data/column4.cxx
@@ -1221,8 +1221,7 @@
    void operator() ( size_t /*nRow*/, SvtBroadcaster* p )
    {
        SvtBroadcaster::ListenersType& rLis = p->GetAllListeners();
        mrListeners.reserve(mrListeners.size() + rLis.size());
        std::copy(rLis.begin(), rLis.end(), std::back_inserter(mrListeners));
        mrListeners.insert(mrListeners.end(), rLis.begin(), rLis.end());
    }
};