非排序map的介面卡

2021-06-14 18:30:46 字數 2075 閱讀 7487

以前寫過的一些**,拿出來與大家分享一下,在看**前先交代清楚它的優缺點,顧名思義此介面卡去除了std::map按key排序的特性,元素的排序按我們插入的順序排列,因此失去了二分查詢的效能,查詢的時間為常數n。在我們不希望std::map排序元素,且儲存元素較少的情況下,這是個不錯的解決方案。

map.h

#pragma once

#include #include namespace std

template map(inputiterator first, inputiterator last,

const a& alloc = a())

: base(first, last, alloc)

map& operator=(const map& rhs)

iterator begin()

const_iterator begin() const

iterator end()

const_iterator end() const

reverse_iterator rbegin()

const_reverse_iterator rbegin() const

reverse_iterator rend()

const_reverse_iterator rend() const

bool empty() const

size_type size() const

size_type max_size()

else

} void insert(const value_type& val)

iterator insert(iterator pos, const value_type& val)

template void insert(inputiterator first, inputiterator last)

void erase(iterator pos)

size_type erase(const key_type& k)

void erase(iterator first, iterator last)

void swap(map& other)

void clear()

iterator find(const key_type& k)

return i;

} const_iterator find(const key_type& k) const

return i;

} size_type count(const key_type& k) const

}return i;

} };

}

main.cpp //對比std::map

#include "map.h"

#include #include #include using namespace std;

int main(void)

{ mapstrs_m;

strs_m[4] = "four";

strs_m[3] = "three";

strs_m[5] = "five";

strs_m[7] = "seven";

strs_m[2] = "two";

strs_m[1] = "one";

strs_m[0] = "zero";

for(map::iterator it = strs_m.begin();

it != strs_m.end();++it)

coutstrs_m[4] = "four";

strs_m[3] = "three";

strs_m[5] = "five";

strs_m[7] = "seven";

strs_m[2] = "two";

strs_m[1] = "one";

strs_m[0] = "zero";

for(map::iterator it = strs_m.begin();

it != strs_m.end();++it)

cout

介面卡模式 預設介面卡,類介面卡,物件介面卡

模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...

介面卡模式(類介面卡 物件介面卡)

做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...

STL介面卡 函式介面卡

有時候需要對內建函式物件返回值進行進一步的簡單計算,或者填上多餘的引數,不能直接代入演算法。函式介面卡實現了這一功能,函式介面卡是將一種函式物件轉化為另一種符合要求的函式物件。函式介面卡可以分為4個大類 繫結介面卡 組合介面卡 指標函式介面卡和成員函式介面卡。需求 在遍歷容器的時候,將容器中的值全部...