처음에는 생각했던 것처럼 간단한 것이 생각보다 어렵습니다. 복사 생성자 안에 int 유형의 벡터 벡터를 복사하려고합니다. 복사 생성자의 벡터 벡터 복사
std::vector<std::vector<int> * > * bar;
나는이 시도하지만 작동하지 않습니다 : 나는
swap
과
back()
뭔가를 사용할 수 있다면 나 또한 생각하지만,이 운동을하면 나는 확실하지 않다
Foo(const Foo& rhs)
: bar(new std::vector<std::vector<int> * >(rhs.vec->size())) {
for (std::size_t i = 0; i < rhs.bar->size(); i++) {
bar->push_back(new std::vector<int>());
for (size_t j = 0; j < (*rhs.bar)[i]->size(); j++) {
bar->back()->push_back((*rhs.bar)[i]->at(j));
}
}
}
.
누군가 나에게 적절한 방법을 보여줄 수 있습니까? 미리 도움을 주셔서 감사합니다!
"벡터 유형 벡터의 벡터"가 실제로있는 경우 복사 생성자에서 특별한 작업을 수행 할 필요가 없습니다. 왜 그 모든 포인터를 사용하고 있습니까? – Chad
포인터가'std :: vector *> * bar; '인지 정말 필요한가요? –
lucasmrod
이것은 끔찍한 코드입니다. "곱셈"을 의미하지 않는다면 C++에서'*'를 말하지 마십시오. –