127
38
struct queue_node {
39
int value;
40
struct queue_node *next;
41
};
42
43
struct queue {
44
void
45
push(int value)
46
{
47
auto node = new queue_node;
48
node->value = value;
49
node->next = nullptr;
50
51
if (head == nullptr) {
52
head = tail = node;
53
} else {
54
tail->next = node;
55
tail = node;
56
}
57
}
58
59
int
60
pop()
61
{
62
if (head == nullptr)
63
throw std::out_of_range("no elements");
64
65
auto head_ptr = head;
66
auto value = head->value;
67
68
head = head->next;
69
delete head_ptr;
70
71
if (head == nullptr)
72
tail = nullptr;
73
Chapter 8 libpmemobj-Cpp: the adaptable language - C++ and persistent memory
Précédent

- 153/457

Suivant