◆ InsertionOrderPreservingMap()
◆ Keys()
5507 {
5508 vector<string> keys;
5509 keys.resize(this->size());
5510 for (auto &kv : map_idx) {
5511 keys[kv.second] = kv.first;
5512 }
5513
5514 return keys;
5515 }
◆ begin() [1/2]
5517 {
5518 return map.begin();
5519 }
◆ end() [1/2]
5521 {
5522 return map.end();
5523 }
◆ begin() [2/2]
5525 {
5526 return map.begin();
5527 }
◆ end() [2/2]
5529 {
5530 return map.end();
5531 }
◆ rbegin()
5533 {
5534 return map.rbegin();
5535 }
◆ rend()
5537 {
5538 return map.rend();
5539 }
◆ find() [1/2]
5541 {
5542 auto entry = map_idx.find(key);
5543 if (entry == map_idx.end()) {
5544 return map.end();
5545 }
5546 return map.begin() + static_cast<typename VECTOR_TYPE::difference_type>(entry->second);
5547 }
◆ find() [2/2]
5549 {
5550 auto entry = map_idx.find(key);
5551 if (entry == map_idx.end()) {
5552 return map.end();
5553 }
5554 return map.begin() + static_cast<typename VECTOR_TYPE::difference_type>(entry->second);
5555 }
◆ size()
5557 {
5558 return map_idx.size();
5559 }
◆ empty()
5561 {
5562 return map_idx.empty();
5563 }
◆ resize()
5565 {
5566 map.resize(nz);
5567 }
◆ clear()
5569 {
5570 map.clear();
5571 }
◆ insert() [1/3]
5573 {
5574 if (contains(key)) {
5575 return;
5576 }
5577 map.emplace_back(key, std::move(value));
5578 map_idx[key] = map.size() - 1;
5579 }
◆ insert() [2/3]
5581 {
5582 if (contains(key)) {
5583 return;
5584 }
5585 map.emplace_back(key, value);
5586 map_idx[key] = map.size() - 1;
5587 }
◆ insert() [3/3]
5589 {
5590 auto &key = value.first;
5591 if (contains(key)) {
5592 return;
5593 }
5594 map_idx[key] = map.size();
5595 map.push_back(std::move(value));
5596 }
◆ erase()
5598 {
5599 auto key = it->first;
5600 auto idx = map_idx[key];
5601 map.erase(it);
5602 map_idx.erase(key);
5603 for (auto &kv : map_idx) {
5604 if (kv.second > idx) {
5605 kv.second--;
5606 }
5607 }
5608 }
◆ contains()
5610 {
5611 return map_idx.find(key) != map_idx.end();
5612 }
◆ at()
5614 {
5615 return map[map_idx.at(key)].second;
5616 }
◆ operator[]()
5618 {
5619 if (!contains(key)) {
5621 insert(key, std::move(
v));
5622 }
5623 return map[map_idx[key]].second;
5624 }
◆ operator==()
5626 {
5627 return map == other.map && map_idx == other.map_idx;
5628 }
◆ operator!=()
5630 {
5631 return !(*this == other);
5632 }
The documentation for this class was generated from the following file: