//////////////////////////////////////////////////////////////////// // CLASS PROVIDED: sequence (a container class for a list of items, // where each list may have a designated item called // the current item) // // TYPEDEFS and MEMBER functions for the sequence class: // typedef ____ value_type // sequence::value_type is the data type of the items in the sequence. // It may be any of the C++ built-in types (int, char, etc.), or a // class with a default constructor, an assignment operator, and a // copy constructor. // typedef ____ size_type // sequence::size_type is the data type of any variable that keeps // track of how many items are in a sequence. // static const size_type CAPACITY = _____ // sequence::CAPACITY is the maximum number of items that a // sequence can hold. // // CONSTRUCTOR for the sequence class: // sequence() // Pre: (none) // Post: The sequence has been initialized as an empty sequence. // // MODIFICATION MEMBER FUNCTIONS for the sequence class: // void start() // Pre: (none) // Post: The first item on the sequence becomes the current item // (but if the sequence is empty, then there is no current item). // void end() // Pre: (none) // Post: The last item on the sequence becomes the current item // (but if the sequence is empty, then there is no current item). // void advance() // Pre: is_item() returns true. // Post: If the current item was the last item in the sequence, then // there is no longer any current item. Otherwise, the new current // item is the item immediately after the original current item. // void move_back() // Pre: is_item() returns true. // Post: If the current item was the first item in the sequence, then // there is no longer any current item. Otherwise, the new current // item is the item immediately before the original current item. // void add(const value_type& entry) // Pre: size() < CAPACITY. // Post: A new copy of entry has been inserted in the sequence after // the current item. If there was no current item, then the new // entry has been inserted as new first item of the sequence. In // either case, the newly added item is now the current item of // the sequence. // void remove_current() // Pre: is_item() returns true. // Post: The current item has been removed from the sequence, and // the item after this (if there is one) is now the new current // item. If the current item was already the last item in the // sequence, then there is no longer any current item. // // CONSTANT MEMBER FUNCTIONS for the sequence class: // size_type size() const // Pre: (none) // Post: The return value is the number of items in the sequence. // bool is_item() const // Pre: (none) // Post: A true return value indicates that there is a valid // "current" item that may be retrieved by activating the current // member function (listed below). A false return value indicates // that there is no valid current item. // value_type current() const // Pre: is_item() returns true. // Post: The item returned is the current item in the sequence. // VALUE SEMANTICS for the sequence class: // Assignments and the copy constructor may be used with sequence // objects. #ifndef SEQUENCE_H #define SEQUENCE_H #include // provides size_t namespace CS3358_SP2023_A04_sequence { template class sequence { public: // TYPEDEFS and MEMBER SP2020 typedef double value_type; typedef size_t size_type; static const size_type CAPACITY = 10; // CONSTRUCTOR sequence(); // MODIFICATION MEMBER FUNCTIONS void start(); void end(); void advance(); void move_back(); void add(const value_type& entry); void remove_current(); // CONSTANT MEMBER FUNCTIONS size_type size() const; bool is_item() const; value_type current() const; private: value_type data[CAPACITY]; size_type used; size_type current_index; }; }
/////////////////////////////////////////////////////////////////////
// CLASS PROVIDED: sequence (a container class for a list of items,
// where each list may have a designated item called
// the current item)
//
// TYPEDEFS and MEMBER functions for the sequence class:
// typedef ____ value_type
// sequence::value_type is the data type of the items in the sequence.
// It may be any of the C++ built-in types (int, char, etc.), or a
// class with a default constructor, an assignment operator, and a
// copy constructor.
// typedef ____ size_type
// sequence::size_type is the data type of any variable that keeps
// track of how many items are in a sequence.
// static const size_type CAPACITY = _____
// sequence::CAPACITY is the maximum number of items that a
// sequence can hold.
//
// CONSTRUCTOR for the sequence class:
// sequence()
// Pre: (none)
// Post: The sequence has been initialized as an empty sequence.
//
// MODIFICATION MEMBER FUNCTIONS for the sequence class:
// void start()
// Pre: (none)
// Post: The first item on the sequence becomes the current item
// (but if the sequence is empty, then there is no current item).
// void end()
// Pre: (none)
// Post: The last item on the sequence becomes the current item
// (but if the sequence is empty, then there is no current item).
// void advance()
// Pre: is_item() returns true.
// Post: If the current item was the last item in the sequence, then
// there is no longer any current item. Otherwise, the new current
// item is the item immediately after the original current item.
// void move_back()
// Pre: is_item() returns true.
// Post: If the current item was the first item in the sequence, then
// there is no longer any current item. Otherwise, the new current
// item is the item immediately before the original current item.
// void add(const value_type& entry)
// Pre: size() < CAPACITY.
// Post: A new copy of entry has been inserted in the sequence after
// the current item. If there was no current item, then the new
// entry has been inserted as new first item of the sequence. In
// either case, the newly added item is now the current item of
// the sequence.
// void remove_current()
// Pre: is_item() returns true.
// Post: The current item has been removed from the sequence, and
// the item after this (if there is one) is now the new current
// item. If the current item was already the last item in the
// sequence, then there is no longer any current item.
//
// CONSTANT MEMBER FUNCTIONS for the sequence class:
// size_type size() const
// Pre: (none)
// Post: The return value is the number of items in the sequence.
// bool is_item() const
// Pre: (none)
// Post: A true return value indicates that there is a valid
// "current" item that may be retrieved by activating the current
// member function (listed below). A false return value indicates
// that there is no valid current item.
// value_type current() const
// Pre: is_item() returns true.
// Post: The item returned is the current item in the sequence.
// VALUE SEMANTICS for the sequence class:
// Assignments and the copy constructor may be used with sequence
// objects.
#ifndef SEQUENCE_H
#define SEQUENCE_H
#include <cstdlib> // provides size_t
namespace CS3358_SP2023_A04_sequence
{
template <class Type>
class sequence
{
public:
// TYPEDEFS and MEMBER SP2020
typedef double value_type;
typedef size_t size_type;
static const size_type CAPACITY = 10;
// CONSTRUCTOR
sequence();
// MODIFICATION MEMBER FUNCTIONS
void start();
void end();
void advance();
void move_back();
void add(const value_type& entry);
void remove_current();
// CONSTANT MEMBER FUNCTIONS
size_type size() const;
bool is_item() const;
value_type current() const;
private:
value_type data[CAPACITY];
size_type used;
size_type current_index;
};
}
![43 #include "sequence.h"
44 namespace CS3358_SP2023_A04_sequence
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
V
74 75 76 7 78 79 80
72 ✓
73
77
V
78 ✔
template <class Type>
sequence<Type>::sequence(): used (0), current_index(0) { }
template<class Type>
void sequence<Type>::start() { current_index = 0; }
template<class Type>
void sequence<Type>::end() { current_index = (used > 0) ? used
template<class Type>
void sequence<Type>::advance()
{
}
assert( is_item() );
}
++current_index;
template<class Type>
void sequence<Type>: :move_back()
{
assert( is_item() );
if (current_index
current_index = used;
else
== (0)
--current_index;
template<class Type>
void sequence<Type>::add(const value_type& entry)
{
assert( size() < CAPACITY );
size_type i;
if (!is_item() )
{
if (used > 0)
for (i = used; i >= 1; --i)
I
1: 0; }](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Faad9e4ed-ed50-4fe3-96ca-72ed3d364f6f%2F21cde1ef-6d31-4574-a065-c5bd21b5fc94%2Fes5wzz_processed.png&w=3840&q=75)
![/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld:
/tmp/sequenceTes
46f.0: in function 'main':
/home/runner/ASSIGN4/./sequenceTest.cpp:50: undefined reference to `CS3358_SP2023_A04_s
equence::sequence<double>::sequence()
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:51: undefined reference to `CS3358_SP2023_A04_sequence::sequence<cha
r>::sequence()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:72: undefined reference to `CS3358_SP2023_A04_sequence::sequence<dou
ble>::start()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:204: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::size() const'
مان
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:144: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::is_item() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:213: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::add(double const&)'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:121: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::is_item() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:125: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::move_back()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:98: undefined reference to `CS3358_SP2023_A04_sequence::sequence<dou
ble>::is_item() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:102: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::advance()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:85: undefined reference to `CS3358_SP2023_A04_sequence::sequence<dou
ble>::end()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:161: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::is_item() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:163: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::current() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:180: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::size() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /tmp/sequenceTest-888
46f.0: in function 'void show_list<double>(CS3358_SP2023_A04_sequence::sequence<double>
)':
/home/runner/ASSIGN4/./sequenceTest.cpp:294: undefined reference to `CS3358_SP2023_A04_
sequence::sequence<double>::start()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:294: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::is_item() const'](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Faad9e4ed-ed50-4fe3-96ca-72ed3d364f6f%2F21cde1ef-6d31-4574-a065-c5bd21b5fc94%2Flp9pwjh_processed.png&w=3840&q=75)
![](/static/compass_v2/shared-icons/check-mark.png)
Trending now
This is a popular solution!
Step by step
Solved in 3 steps
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![C How to Program (8th Edition)](https://www.bartleby.com/isbn_cover_images/9780133976892/9780133976892_smallCoverImage.gif)
![Database Systems: Design, Implementation, & Manag…](https://www.bartleby.com/isbn_cover_images/9781337627900/9781337627900_smallCoverImage.gif)
![Programmable Logic Controllers](https://www.bartleby.com/isbn_cover_images/9780073373843/9780073373843_smallCoverImage.gif)