我有一个NoCopy
可移动但不可复制的课程。
我需要制作一个包含 3 个队列的向量NoCopy
。我可以创建一个空的,但没有办法添加任何元素。
我可以制作一个std::vector<NoCopy>
orstd::queue<NoCopy>
并填充它们。但不是为了std::vector<std::queue<NoCopy>>
。
MWE:
#include <iostream>
#include <vector>
#include <queue>
class NoCopy{
public:
NoCopy() = default;
NoCopy& operator = (const NoCopy&) = delete;
NoCopy(const NoCopy&) = delete;
NoCopy(NoCopy&&) = default;
NoCopy& operator = (NoCopy&&) = default;
};
using QNC = std::queue<NoCopy>;
int main(void) {
QNC q;
q.push(std::move(NoCopy()));
std::vector<NoCopy> ncvec;
ncvec.emplace_back();
std::cout << "Queue size " << q.size() << ", vector size: " << ncvec.size() << std::endl;
std::vector<QNC> qvec;
//????
return 0;
}
有任何想法吗?