mdds
include
mdds
sorted_string_map.hpp
1
/*************************************************************************
2
*
3
* Copyright (c) 2014 Kohei Yoshida
4
*
5
* Permission is hereby granted, free of charge, to any person
6
* obtaining a copy of this software and associated documentation
7
* files (the "Software"), to deal in the Software without
8
* restriction, including without limitation the rights to use,
9
* copy, modify, merge, publish, distribute, sublicense, and/or sell
10
* copies of the Software, and to permit persons to whom the
11
* Software is furnished to do so, subject to the following
12
* conditions:
13
*
14
* The above copyright notice and this permission notice shall be
15
* included in all copies or substantial portions of the Software.
16
*
17
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
* OTHER DEALINGS IN THE SOFTWARE.
25
*
26
************************************************************************/
27
28
#ifndef MDDS_SORTED_STRING_MAP_HPP
29
#define MDDS_SORTED_STRING_MAP_HPP
30
31
#include <cstdlib>
32
33
namespace
mdds
{
34
40
template
<
typename
_ValueT>
41
class
sorted_string_map
42
{
43
public
:
44
typedef
_ValueT value_type;
45
typedef
size_t
size_type;
46
51
struct
entry
52
{
53
const
char
* key;
54
size_type keylen;
55
value_type value;
56
};
57
66
sorted_string_map
(
const
entry
* entries, size_type entry_size, value_type null_value);
67
78
value_type
find
(
const
char
* input, size_type len)
const
;
79
87
size_type
size
()
const
;
88
89
private
:
90
91
const
entry
* m_entries;
92
value_type m_null_value;
93
size_type m_entry_size;
94
const
entry
* m_entry_end;
95
};
96
97
}
98
99
#include "sorted_string_map_def.inl"
100
101
#endif
mdds::sorted_string_map::sorted_string_map
sorted_string_map(const entry *entries, size_type entry_size, value_type null_value)
mdds::sorted_string_map::size
size_type size() const
mdds::sorted_string_map
Definition:
sorted_string_map.hpp:41
mdds::sorted_string_map::find
value_type find(const char *input, size_type len) const
mdds
Definition:
flat_segment_tree.hpp:46
mdds::sorted_string_map::entry
Definition:
sorted_string_map.hpp:51
Generated on Thu Nov 1 2018 18:49:59 for mdds by
1.8.13