#include <iostream>
#include <vector>
#include <cstring>
using namespace std;

class matrix_mv
{
public:
	matrix_mv()
	{
		cout << "Тяжёлое создание matrix_mv." << endl;
		data = new double[1000 * 1000];
	}

	matrix_mv(const matrix_mv& other)
	{
		cout << "Тяжёлое копирование matrix_mv." << endl;
		data = new double[1000 * 1000];
		memcpy(data, other.data, 1000 * 1000 * sizeof(double));
	}

	matrix_mv(matrix_mv&& other)
	{
		cout << "Лёгкое перемещение matrix_mv." << endl;
		data = other.data;
		other.data = nullptr;
	}

	~matrix_mv()
	{
		if (data)
			cout << "Тяжёлое уничтожение matrix_mv с данными." << endl;
		else
			cout << "Лёгкое уничтожение опустошённой matrix_mv." << endl;
		delete[] data;
	}

private:
	double* data;
};

int main()
{
	vector<matrix_mv> v;
	v.push_back(matrix_mv());
	return 0;
}