我应该将vector <object>转换为vector <shared_ptr <object>&gt;在C ++中?

时间:2017-08-19 22:35:52

标签: c++ json vector

我正在使用https://github.com/nlohmann/json中的C ++ json库。

我写的代码大致类似于:

// User is a class
json userJson = json::parse(<...some json string...>);
vector<User> user = userJson;  // will be converted to vector<User>

我(个人)不认为直接使用vector<User> ... 我应该将其转换为vector<shared_ptr<User>>(使用下面的代码)吗?

vector<shared_ptr<User>> userPtr;
userPtr.reserve(user.size());
transform(user.begin(), user.end(), back_inserter(userPtr), [](User& item) { return make_shared<User>(std::move(item)); });

如果两者都没有,推荐的方式是什么? (用于处理C ++中的用户/学生/人员等列表)

0 个答案:

没有答案