Open Chinese Convert
1.1.2
A project for conversion between Traditional and Simplified Chinese
src
Lexicon.hpp
1
/*
2
* Open Chinese Convert
3
*
4
* Copyright 2010-2014 Carbo Kuo <byvoid@byvoid.com>
5
*
6
* Licensed under the Apache License, Version 2.0 (the "License");
7
* you may not use this file except in compliance with the License.
8
* You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*/
18
19
#pragma once
20
21
#include "Common.hpp"
22
#include "DictEntry.hpp"
23
24
namespace
opencc {
29
class
OPENCC_EXPORT
Lexicon
{
30
public
:
31
Lexicon
() {}
32
Lexicon
(std::vector<std::unique_ptr<DictEntry>> entries_)
33
: entries(std::move(entries_)) {}
34
Lexicon
(
const
Lexicon
&) =
delete
;
35
Lexicon
& operator=(
const
Lexicon
&) =
delete
;
36
37
// Lexicon will take the ownership of the entry.
38
void
Add(
DictEntry
* entry) { entries.emplace_back(entry); }
39
40
void
Add(std::unique_ptr<DictEntry> entry) {
41
entries.push_back(std::move(entry));
42
}
43
44
void
Sort();
45
46
// Returns true if the lexicon is sorted by key.
47
bool
IsSorted();
48
49
// Returns true if every key unique (after sorted).
50
bool
IsUnique();
51
52
const
DictEntry
* At(
size_t
index)
const
{
return
entries.at(index).get(); }
53
54
size_t
Length()
const
{
return
entries.size(); }
55
56
std::vector<std::unique_ptr<DictEntry>>::const_iterator begin()
const
{
57
return
entries.begin();
58
}
59
60
std::vector<std::unique_ptr<DictEntry>>::const_iterator end()
const
{
61
return
entries.end();
62
}
63
64
private
:
65
std::vector<std::unique_ptr<DictEntry>> entries;
66
};
67
}
// namespace opencc
opencc::DictEntry
Key-values pair entry.
Definition:
DictEntry.hpp:30
opencc::Lexicon
Storage of all entries.
Definition:
Lexicon.hpp:29
Generated on Fri Mar 19 2021 22:32:26 for Open Chinese Convert by
1.9.1