Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

C++ STL Vector Practice Rewrite your high scores program ( https://pastebin.com/y4RXCh4t ) that uses a highscore struct -- but use an STL vector instead of

C++ STL Vector Practice

Rewrite your high scores program (https://pastebin.com/y4RXCh4t) that uses a highscore struct -- but use an STL vector instead of an array. (Note, you will be using an STL vector, not the MyVector class developed in lesson 19.) You may use your own solution from the earlier assignment or the posted solution from that assignment.

Clarifications and Additional Requirements:

oOoOo Documentation is not required for this assignment.

oOoOo All requirements of the earlier assignment apply. Your program should use three functions that accept the vector of highscore structs (the size parameter from the earlier assignment won't be needed now, since a vector knows its own size). You must use these function headers:

void initializeData(vector& scores) void sortData(vector& scores) void displayData(const vector& scores)

oOoOo The name field in the struct must still be a c-string

oOoOo The focus of this assignment is to use iterators. I expect you to use iterators wherever possible to access the vector. As a result, you must not use square brackets, the push_back() function, the at() function, etc. You won't get full credit if you miss an opportunity to use iterators.

oOoOo You should still ask the user to enter the number of scores there will be, and then you should create a vector with the required capacity. You can do this by using the vector class's constructor that creates a vector with the capacity indicated by its parameter. For example, to create a vector of size 100, use this:

vector myExampleVector(100);

It is possible to write our program without bothering to indicate a size if we simply use push_back() to add each high score struct to the vector. We aren't doing it that way, because I want you to practice using iterators.

oOoOo You could sort the scores by simply calling the STL sort() algorithm. I would suggest that you try this out because it's something you should know, but for your submitted program you are required to sort the vector yourself as you did in the earlier high scores assignment, using iterators to access the items in the vector.

oOoOo If you are using the indexOfLargest() function from the solution to the previous high scores program -- which I encourage -- you may run into some const/non-const difficulties. The function needs to return a regular iterator (so that the calling function can use it to modify the vector). But the vector passed into the function should be const, which means the iterator passed into the vector should be a const_iterator. But that makes it impossible to return a non-const iterator. To solve this we will have to make the second parameter a regular iterator, even though it could be used to modify the const vector.

oOoOo In your displayData() function you'll need to use const_iterator instead of iterator. See lesson 19.4.

oOoOo Here is an example that shows how to use an iterator to access a particular member of a struct:

swap((*iter1).firstmember, (*iter2).firstmember); 

This will work just fine, but there is a C++ operator that combines these two (dereference and then select). I works like this:

swap(iter1 -> firstmember, iter2 -> firstmember);

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started