chunkedseq
container library for large in-memory data sets
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
segment_1.cpp
Go to the documentation of this file.
1 
16 #include <iostream>
18 #include <string>
19 #include <assert.h>
20 
21 #include "chunkedseq.hpp"
22 
23 int main(int argc, const char * argv[]) {
24 
25  const int chunk_size = 2;
27 
28  mydeque_type mydeque = { 0, 1, 2, 3, 4, 5 };
29 
30  std::cout << "mydeque contains:";
31  // iterate over the segments in mydeque
32  mydeque.for_each_segment([&] (int* begin, int* end) {
33  // iterate over the items in the current segment
34  int* p = begin;
35  while (p != end)
36  std::cout << " " << *p++;
37  });
38  std::cout << std::endl;
39 
40  using iterator = typename mydeque_type::iterator;
41  using segment_type = typename mydeque_type::segment_type;
42 
43  // iterate over the items in the segment which contains the item at position 3
44  iterator it = mydeque.begin() + 3;
45  segment_type seg = it.get_segment();
46 
47  std::cout << "the segment which contains mydeque[3] contains:";
48  int* p = seg.begin;
49  while (p != seg.end)
50  std::cout << " " << *p++;
51  std::cout << std::endl;
52 
53  std::cout << "mydeque[3]=" << *seg.middle << std::endl;
54 
55  return 0;
56 
57 }
58 //! [segment_example]
iterator begin() const
Returns iterator to beginning.
Iterator< self_type, config_type > iterator
void for_each_segment(const Body &f) const
Visits every segment of items in the container.
int main(int argc, const char *argv[])
[segment_example]
Definition: segment_1.cpp:23
typename config_type::segment_type segment_type
Chunked-sequence functor.