adding the move constructor example for map insert

This commit is contained in:
Jidong Xiao
2025-03-11 02:03:43 -04:00
committed by JamesFlare1212
parent cf9b51d64a
commit af2c2bddd2
5 changed files with 249 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
#include <iostream>
#include <map>
#include <vector>
#include <string>
class LargeClass {
public:
std::vector<int> data;
std::string name;
LargeClass(int size, const std::string& n) : data(size), name(n) {
// simulate work in the constructor
for (int i = 0; i < size; ++i) {
data[i] = i;
}
}
// define a copy constructor for demonstration purposes
LargeClass(const LargeClass& other) : data(other.data), name(other.name) {
// std::cout << "Copy constructor called\n";
}
// for demonstration, printing the object contents
void print() const {
std::cout << name << ": " << data[0] << "..." << data[data.size() - 1] << std::endl;
}
};
int main() {
const int num_elements = 10000000;
const int map_size = 10;
std::map<int, LargeClass> map_insert;
for (int i = 0; i < map_size; ++i) {
map_insert.insert({i, LargeClass(num_elements, "Insert_" + std::to_string(i))});
}
return 0;
}