// Version 4.0.20140914 // Last update 2014-10-01 // namespace FastCpp { // BTreeArray - open source portable C++ source library. // The BTreeArray is sequence container representing array that can change in size. // This container is optimized for insert and delete operations. // Internally it are implemented as BTree structure, // but externally it has the interface of array (vector). // This allows to perform insert, delete, and access in logarithmic time. // // There is a comparison test for the containers: // // MS (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86 // ------------------------------------------------------------------------------- // | | std:: | std:: | FastCpp:: | operation | // | | vector | deque | BTreeArray | count | // |------------------------|-----------|-----------|---------------|------------| // |destructor | 1 | 517 | 535 | 10000000 | // |push_front(i) | - | 435 | 1521 | 10000000 | // |push_back(i) | 101 | 441 | 1335 | 10000000 | // |insert(v.begin(), i) | 119722 | 21 | 109 | 500000 | // |insert(v.begin()+i/2, i)| 50873 | 509804 | 275 | 500000 | // |operator [] | 11 | 56 | 2248 | 10000000 | // |operator [] step 2 | 11 | 29 | 1152 | 10000000 | // |it : begin()-->end() | 8 | 43 | 88 | 10000000 | // |it : begin()-->end() +=2| 6 | 21 | 70 | 10000000 | // |erase(v.begin()) | 116988 | 11 | 74 | 500000 | // |pop_back() | 8 | 15 | 1537 | 10000000 | // |erase middle | 49312 | 511167 | 238 | 500000 | // ------------------------------------------------------------------------------- // results are in milliseconds // // // gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 // ------------------------------------------------------------------------------- // | | std:: | std:: | FastCpp:: | operation | // | | vector | deque | BTreeArray | count | // |------------------------|-----------|-----------|---------------|------------| // |destructor | 2 | 8 | 130 | 10000000 | // |push_front(i) | - | 112 | 1844 | 10000000 | // |push_back(i) | 187 | 36 | 1702 | 10000000 | // |insert(v.begin(), i) | 124406 | 5 | 137 | 500000 | // |insert(v.begin()+i/2, i)| 53285 | 77996 | 345 | 500000 | // |operator [] | 12 | 43 | 2561 | 10000000 | // |operator [] step 2 | 9 | 15 | 1299 | 10000000 | // |it : begin()-->end() | 10 | 10 | 100 | 10000000 | // |it : begin()-->end() +=2| 10 | 9 | 78 | 10000000 | // |erase(v.begin()) | 121562 | 7 | 99 | 500000 | // |pop_back() | 7 | 31 | 1916 | 10000000 | // |erase middle | 51343 | 69523 | 325 | 500000 | // ------------------------------------------------------------------------------- // results are in milliseconds // // The source code of the test is located at Tests/SpeedTest/SpeedTest.cpp. // // // The license allows to use any FastCpp library for free, // if the link to www.FastCpp.com displayed in an application using the library. // // // Download // }// namespace FastCpp