我有2个向量,即@Controller
public class LoginController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String showLoginPage(Model model) {
model.addAttribute("loginBean", new LoginBean());
return "login";
}
@RequestMapping(value = "/showProfile", method = RequestMethod.POST)
public ModelAndView redirectToprofile(@ModelAttribute("loginBean") LoginBean loginBean) {
StaffServiceImpl staffServiceImpl = new StaffServiceImpl();
Staff staff = staffServiceImpl.authenticateStaff(loginBean);
if (null != staff) {
return new ModelAndView("redirect:/profilePage","staffData",staff);
}
return new ModelAndView("profileNotFound");
}
@RequestMapping(value = "/profilePage", method = RequestMethod.GET)
public String showProfilePage() {
return "profilePage";
}
的{{1}}和deals_all
,其中deals_new
是一个类
FXDeal
两个向量都按主键字段FxDeal
排序。
如何将struct FxDeal
{
int deal_id_; // primary key
string ccy_pair_;
double amount_;
}
合并到deal_id_
以便
deals_new
中的新优惠会被复制或附加到deals_all
和deals_new
中的deals_all
交易(按主键提供)
deals_all
),会更新字段deal_new
和deal_id_
我使用的是c ++ 11。
答案 0 :(得分:3)
您可以使用std::set_union
。 (这假设向量是使用名为compare_by_id
的比较函数进行排序的,这就是名称所暗示的。)
std::vector<FxDeal> merged_deals;
std::set_union(deals_new.begin(), deals_new.end(),
deals_all.begin(), deals_all.end(),
std::back_inserter(merged_deals),
compare_by_id);
deals_all = std::move(merged_deals);
请务必将deals_new
作为第一个范围传递,因为这将是在重复ID的情况下复制的范围。
答案 1 :(得分:2)
我会尝试以下(伪代码):
min(valid_trips, key=len)