请考虑以下代码:
据我理解,第一次调用
#include <iostream>
#include <vector>
#include <utility>
std::vector<int> vecTest;
int main()
{
int someRval = 3;
vecTest.push_back(someRval);
vecTest.push_back(std::move(someRval));
return 0;
}
据我理解,第一次调用
push_back()
时,someRval
的值将被复制到 vecTest 中,但是在第二次调用中,someRval
会生成一个 x 值。我的问题是,是否会有任何性能优势?也许对于 int
来说可能没有,但是当使用更大的对象时,可能会有一些性能优势吗?
int
没有任何区别。对于一些类来说会有区别,例如移动构造函数比拷贝构造函数更有效率的std::string
。 - Igor Tandetnik