I have an assignment where I have two objects, and one of them has a vector as a member. I have to operate with the vector, both in the other object and in main, but I couldn't figure out how to do it.
I think I should copy the vector outside the private but then I couldn't figure out how to do that too.
#include <iostream>
#include <vector>
class Object
{
public:
Object()
{}
~Object()
{}
void AddInt(int num)
{
m_VectorOfInts.push_back(num);
}
std::vector<int> GetCopyOfVector()
{
return m_VectorOfInts;
}
void DisplayVectorContents()
{
for( unsignedint i = 0; i < m_VectorOfInts.size(); i++ )
{
std::cout << "Element[" << i << "] = " << m_VectorOfInts[i] << std::endl;
}
std::cout << std::endl;
}
private:
std::vector<int> m_VectorOfInts;
};
int main()
{
// Create our class an add a few ints
Object obj;
obj.AddInt(32);
obj.AddInt(56);
obj.AddInt(21);
// Display the vector contents so far
obj.DisplayVectorContents();
// Creates a copy of the classes container you can only really view whats in
// the classes vector container. What ever changes you make here wont effect the class.
std::vector<int> container1 = obj.GetCopyOfVector();
// These elements wont be added as it's a copy of the container
container1.push_back(342);
container1.push_back(64);
container1.push_back(123);
// Display the classes container to see show nothing was added.
obj.DisplayVectorContents();
return 0;
}