我正在尝试在对象中实现“安放”功能。它的结构如下。我有一个将 size_t 与模板类型配对的模板对象。我希望能够在标准库容器中构建它,例如向量。我没有使用 a std::pair
,因为我的班级B
将围绕数据提供其他功能。
我需要如何修改代码,以便可以像在 main 中一样调用 emplace?
#include <iostream>
#include <vector>
using namespace std;
class C {
public:
C(const string& _s) : s(_s) {}
C(string&& _s) : s(_s) {}
private:
string s;
};
template<typename A>
class B {
public:
B(size_t _i, const A& _a) : i(_i), a(_a) {}
B(size_t _i, A&& _a) : i(_i), a(_a) {}
private:
size_t i;
A a;
};
int main() {
vector<B<C>> v;
v.emplace_back(5, "Hello");
}