Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "RedBlackTree.h"
- #include <map>
- #include <vector>
- #include <ctime>
- using namespace std;
- //кол-во измерений
- #define VALUE_COUNT 100000
- //размер ключа
- #define KEY_SIZE 10
- int main() {
- srand(time(0));
- map<string, int> Map;//std::map
- vector<string> Keys;//вектор для хранения сгенерированных ключей
- double mapTime = 0;//общее время вставки для std::map
- double rbtTime = 0;//общее время вставки для дерева
- clock_t start, end;
- int v = 0;
- for (int i = 0; i < VALUE_COUNT; i++) {
- char c;
- string k = "";
- for (int j = 0; j < KEY_SIZE; j++) { //генерируем ключ
- c = rand() % 255;
- k += c;
- }
- Keys.push_back(k); //созхраняем ключ
- }
- start = clock();
- for (std::vector<string>::iterator it = Keys.begin(); it != Keys.end(); ++it){
- insertNode(*it,v); // вставка в дерево
- findNode(*it);
- }
- end = clock();
- rbtTime = (double)(end - start) / CLOCKS_PER_SEC * 1000.0;
- start = clock();
- for (std::vector<string>::iterator it = Keys.begin(); it != Keys.end(); ++it) {
- Map.insert(pair<string, int>(*it, v)); //вставка в std::map
- Map.find(*it);
- }
- end = clock();
- mapTime = (double)(end - start) / CLOCKS_PER_SEC * 1000.0;
- cout << "RBT insert/find average time: " << rbtTime / VALUE_COUNT << endl;
- cout << "Map insert/find average time: " << mapTime / VALUE_COUNT << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement