Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: F401RE-USBHostMIDI_RecieveExample
Fork of F401RE-USBHost by
USBHost/mymap.h
- Committer:
- va009039
- Date:
- 2014-02-03
- Revision:
- 9:7f9f64cf5ded
- Child:
- 10:40c7f6788902
File content as of revision 9:7f9f64cf5ded:
#pragma once
template<class K,class T>
class mymap {
struct mypair {
K key;
T value;
};
public:
mymap() {
m_size = 0;
m_limit = 4;
m_buf = new mypair[m_limit];
}
void put(K key, T value) {
int i = find(key);
if (i == (-1)) {
if (m_size >= m_limit) {
int new_limit = m_limit + 4;
mypair* new_buf = new mypair[new_limit];
for(int i = 0; i < m_size; i++) {
new_buf[i] = m_buf[i];
}
delete[] m_buf;
m_buf = new_buf;
m_limit = new_limit;
}
i = m_size++;
m_buf[i].key = key;
}
m_buf[i].value = value;
}
T get(K key) {
int i = find(key);
return (i == -1) ? NULL : m_buf[i].value;
}
bool empty() { return m_size == 0 ? true : false; }
int size() { return m_size; }
void clear() { m_size = 0; }
private:
int find(K key) {
for(int i = 0; i < m_size; i++) {
if (m_buf[i].key == key) {
return i;
}
}
return -1;
}
int m_limit;
int m_size;
mypair *m_buf;
};
