/usr/include/cxmultimap.h is in libcext-dev 7.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | /*
* This file is part of the ESO C Extension Library
* Copyright (C) 2001-2017 European Southern Observatory
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef CX_MULTIMAP_H
#define CX_MULTIMAP_H
#include <cxmemory.h>
#include <cxtree.h>
CX_BEGIN_DECLS
/**
* @ingroup cxmultimap
*
* @brief
* The multimap datatype.
*
* The internal representation of a mutimap is, as for ordinary maps too, a
* balanced binary tree. For this reason cx_multimap is just an alias for
* cx_tree.
*/
typedef cx_tree cx_multimap;
/**
* @ingroup cxmultimap
*
* @brief
* The multimap iterator datatype.
*
* The multimap iterator is just an alias for the cx_tree_iterator datatype.
*/
typedef cx_tree_iterator cx_multimap_iterator;
/**
* @ingroup cxmultimap
*
* @brief
* The multimap constant iterator datatype.
*
* The multimap constant iterator is just an alias for the
* cx_tree_const_iterator datatype.
*/
typedef cx_tree_const_iterator cx_multimap_const_iterator;
/**
* @ingroup cxmultimap
*
* @brief
* The multimap's key comparison operator function.
*
* This type of function is used internally by a multimap when key
* comparisons are necessary. It must return @c TRUE if the comparison
* of its first argument with the second argument succeeds, and @c FALSE
* otherwise. It is actually an alias for cx_tree_compare_func.
*
* @see cx_tree_compare_func
*/
typedef cx_tree_compare_func cx_multimap_compare_func;
/*
* Create, copy and destroy operations
*/
cx_multimap *cx_multimap_new(cx_multimap_compare_func, cx_free_func,
cx_free_func);
void cx_multimap_delete(cx_multimap *);
/*
* Nonmodifying operations
*/
cxsize cx_multimap_size(const cx_multimap *);
cxbool cx_multimap_empty(const cx_multimap *);
cxsize cx_multimap_max_size(const cx_multimap *);
cx_multimap_compare_func cx_multimap_key_comp(const cx_multimap *);
/*
* Special search operations
*/
cxsize cx_multimap_count(const cx_multimap *, cxcptr);
cx_multimap_iterator cx_multimap_find(const cx_multimap *, cxcptr);
cx_multimap_iterator cx_multimap_lower_bound(const cx_multimap *, cxcptr);
cx_multimap_iterator cx_multimap_upper_bound(const cx_multimap *, cxcptr);
void cx_multimap_equal_range(const cx_multimap *, cxcptr,
cx_multimap_iterator *, cx_multimap_iterator *);
/*
* Assignment operations
*/
void cx_multimap_swap(cx_multimap *, cx_multimap *);
cxptr cx_multimap_assign(cx_multimap *, cx_multimap_iterator, cxcptr);
/*
* Element access
*/
cxptr cx_multimap_get_key(const cx_multimap *, cx_multimap_const_iterator);
cxptr cx_multimap_get_value(const cx_multimap *, cx_multimap_const_iterator);
/*
* Iterator functions
*/
cx_multimap_iterator cx_multimap_begin(const cx_multimap *);
cx_multimap_iterator cx_multimap_end(const cx_multimap *);
cx_multimap_iterator cx_multimap_next(const cx_multimap *,
cx_multimap_const_iterator);
cx_multimap_iterator cx_multimap_previous(const cx_multimap *,
cx_multimap_const_iterator);
/*
* Inserting and removing elements
*/
cx_multimap_iterator cx_multimap_insert(cx_multimap *, cxcptr, cxcptr);
void cx_multimap_erase_position(cx_multimap *, cx_multimap_iterator);
void cx_multimap_erase_range(cx_multimap *, cx_multimap_iterator,
cx_multimap_iterator);
cxsize cx_multimap_erase(cx_multimap *, cxcptr);
void cx_multimap_clear(cx_multimap *);
CX_END_DECLS
#endif /* CX_MULTIMAP_H */
|