Please Overloading '=' does not work : i was writing a code and i wrote an '=' operator to assign one object to another and a copy constructor. Here is the code

    DJSet(const DJSet& ds)
	{
		vector<Element<T>* > vec= ds.v_;
		for (int i = 0; i < vec.size(); i++)
		{
			v_.push_back(vec[i]);
		}
		//cout << "Copy Called\n";
	}
	DJSet operator=(DJSet ds)
	{
		DJSet<T> djs;
		vector<Element<T>* > vec = ds.v_;
		for (int i = 0; i < vec.size(); i++)
		{
			djs.v_.push_back(vec[i]);
		}
		cout << "= Called\n";
		return djs;
	}
The class DJSet contains only one Vector of `Element<T>* type` 
So when i execute the code below. 

    DJSet<string> djs_rhs;
		DJSet<string> djs_lhs;
		cin >> name;
		djs_rhs.add(name);
		cin >> name;
		djs_rhs.add(name);

		cin >> name;
		djs_lhs.add(name);
		cin >> name;
		djs_lhs.add(name);

		djs_lhs = djs_rhs;
		cout << djs_lhs << endl;
		cout << endl;
		cout << djs_rhs << endl;

It does not copy the values of the right hand side to left hand side objects. And it is calling both copy constructor and '=' operator. Please help me with this. So that i can continue with this. I can provide the whole source code if you want.