Что такое быстрый/эффективный способ инициализации с данными a std::vector
переменная-член в классе?Наиболее эффективный способ инициализации вектора-члена элемента с большим набором данных
Вот что я смог придумать:
class LargeClass
{
//lot of data, with long running constructor to initialize them
}
class EngineClass
{
public:
EngineClass(const vector<LargeClass>& vectorOfLargeClass)
{
mVectorOfLargeClass = vectorOfLargeClass; //Here is what I was able to come up
}
private:
vector<LargeClass> mVectorOfLargeClass;
}
int main()
{
vector<LargeClass> vectorOfLargeClass;
...
//fill vectorOfLargeClass with a lot of data
...
EngineClass engine(vectorOfLargeClass);
...
}
мне нужно EngineClass
держать копию данных vectorOfLargeClass
вектора, который был создан в main()
.
Я использую C++ 11, но я не полностью знаком с языком, и, возможно, есть более стандартный способ выполнения такой задачи.
сделать вам нужно сделать * копия * или вы можете * переместить * то, что вы уже создали? – vu1p3n0x
Мне действительно интересно как двигаться, так и копировать. Перемещение происходит быстрее, чем копия, указанная выше? – Avithohol
@Avithohol по определению, нет копии, если вы * переместите *, так что .. да. Ничто не бесконечно быстрее чем-то = P – WhozCraig