Q)Write a C++ function void store(int key,int value) in a class such that the ve
ID: 3733866 • Letter: Q
Question
Q)Write a C++ function void store(int key,int value) in a class such that the vector keys stores a key in each of its index's and the vector values contains a list of values associated with that key in each of its index's .
#include <list>
#include <vector>
class A
{
public:
void store (int key,int value)
{
// Define function here.
}
private:
vector keys;
vector <list<int>> values; // This is a vector that contains a list of type of int<> in each index.
}
When we call
store(2,5) and store (2,7) in int main(), vector keys should have the value 2 in its first index and the first index of the vector values should contain a list that contains 5 and 7.
Explanation / Answer
#include <iostream>
using namespace std;
#include <list>
#include <vector>
class A {
public:
void store(int key, int value)
{
int ind = -1;
for(int i = 0; i < keys.size(); ++i) {
if(keys[i] == key) {
ind = i;
break;
}
}
if(ind == -1) {
ind = keys.size();
keys.push_back(key);
list<int> l;
values.push_back(l);
}
values[ind].push_back(value);
}
private:
vector<int> keys;
vector<list<int> > values; // This is a vector that contains a list of type of int<> in each index.
};
int main() {
A a;
a.store(2,5);
a.store(2,7);
return 0;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.