cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
expanding_vector.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module:
4
5
Author: Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
9
10
#ifndef CPROVER_UTIL_EXPANDING_VECTOR_H
11
#define CPROVER_UTIL_EXPANDING_VECTOR_H
12
13
#include <vector>
14
15
template
<
typename
T>
16
class
expanding_vectort
17
{
18
typedef
std::vector<T>
data_typet
;
19
data_typet
data
;
20
21
public
:
22
// NOLINTNEXTLINE(readability/identifiers)
23
typedef
typename
data_typet::size_type
size_type
;
24
// NOLINTNEXTLINE(readability/identifiers)
25
typedef
typename
data_typet::iterator
iterator
;
26
// NOLINTNEXTLINE(readability/identifiers)
27
typedef
typename
data_typet::const_iterator
const_iterator
;
28
29
T &
operator[]
(
typename
std::vector<T>::size_type n)
30
{
31
if
(n>=
data
.size())
32
data
.resize(n+1);
33
return
data
[n];
34
}
35
36
void
clear
() {
data
.clear(); }
37
38
iterator
begin
() {
return
data
.begin(); }
39
const_iterator
begin
()
const
{
return
data
.begin(); }
40
const_iterator
cbegin
()
const
{
return
data
.cbegin(); }
41
42
iterator
end
() {
return
data
.end(); }
43
const_iterator
end
()
const
{
return
data
.end(); }
44
const_iterator
cend
()
const
{
return
data
.cend(); }
45
46
size_type
size
()
const
{
return
data
.size(); }
47
48
void
push_back
(
const
T &t) {
data
.push_back(t); }
49
void
push_back
(T &&t) {
data
.push_back(std::move(t)); }
50
};
51
52
#endif
// CPROVER_UTIL_EXPANDING_VECTOR_H
expanding_vectort
Definition
expanding_vector.h:17
expanding_vectort< flagst >::data_typet
std::vector< flagst > data_typet
Definition
expanding_vector.h:18
expanding_vectort::size
size_type size() const
Definition
expanding_vector.h:46
expanding_vectort< flagst >::iterator
data_typet::iterator iterator
Definition
expanding_vector.h:25
expanding_vectort::cend
const_iterator cend() const
Definition
expanding_vector.h:44
expanding_vectort< flagst >::const_iterator
data_typet::const_iterator const_iterator
Definition
expanding_vector.h:27
expanding_vectort::begin
const_iterator begin() const
Definition
expanding_vector.h:39
expanding_vectort::operator[]
T & operator[](typename std::vector< T >::size_type n)
Definition
expanding_vector.h:29
expanding_vectort::begin
iterator begin()
Definition
expanding_vector.h:38
expanding_vectort::push_back
void push_back(T &&t)
Definition
expanding_vector.h:49
expanding_vectort< flagst >::data
data_typet data
Definition
expanding_vector.h:19
expanding_vectort::cbegin
const_iterator cbegin() const
Definition
expanding_vector.h:40
expanding_vectort::push_back
void push_back(const T &t)
Definition
expanding_vector.h:48
expanding_vectort::end
const_iterator end() const
Definition
expanding_vector.h:43
expanding_vectort< flagst >::size_type
data_typet::size_type size_type
Definition
expanding_vector.h:23
expanding_vectort::clear
void clear()
Definition
expanding_vector.h:36
expanding_vectort::end
iterator end()
Definition
expanding_vector.h:42
util
expanding_vector.h
Generated by
1.17.0