std::vector::push_back wykorzystuje kosntruktor kopiujący, ale od c++11 jest też push_back przyjmujące referencje do rwartości (rvalue reference) i z tego możesz skorzystać skoro konstruktor kopiujący jest delete. Najlepiej jakbyś pokazał jak wygląda u ciebie dodawanie do vectora (pokaż linie kodu).
Anyway, jeśli klasa nie ma konstruktora kopiującego, to masz musisz skorzystać z push_back(Typ&&):
//v to vector
v.push_back(Klasa()); // od razu podajesz mu rvalue
//albo:
Klasa k;
/* coś robisz z tym obiektem
a nastepnie zmuszasz push_back aby potraktował go jako rvalue: */
v.push_back(std::move(k));
// po tym absolutnie już nie ruszaj obiektu k, bo konstruktor przenoszący pozostawił
// go w niezdefiniowanym stanie
// zakładam, że to sie dzieje w jakiejś funkcji i k jest obiektem lokalnym, który
zniknie po wyjściu z funkcji
Drugą możliwością jest skorzystanie z emplace_back również dostępnego od c++11. Emplace back przyjmuje argumenty, które następnie zostaną przekazane do zwykłego konstruktora i emplace_back sama sobie stworzy obiekt na końcu kontenera.
np.:
class A
{
public: A(int, float, std::string) { }
};
std::vector<A> v;
v.emplace_back(1, 1.f, "lkfjlsf");