ppip @ 2022-07-09 20:01:49
emplace insert(块链,数列分块入门 6)
两份提交记录empalce AC,insert RE,显然只有代码开头的 rebuild 的函数中这一行不同:
copy(ers, t->end(), back_inserter(*bt.emplace(next(t))));
copy(ers, t->end(), back_inserter(*bt.insert(next(t), {})));
为什么insert(第二个)RE?
辅助信息:
bt:
t: list<vector<int>>::iterator
ers: vector<int>::iterator
by KaguyaH @ 2022-07-09 20:57:11
@ppip
insert 的写法我感觉应该是会调用 initializer_list 那个重载,不会插入任何东西。
by KaguyaH @ 2022-07-09 20:57:57
@ppip 改成 copy(ers, t->end(), back_inserter(*bt.insert(next(t), vector<int>()))); 应该就可以了,你可以试试。
by ppip @ 2022-07-09 20:59:49
@KHIN 谢谢就是说它不把{}当作vector的构造,而是插入多个元素的列表
竟有这么神奇的重载
by ppip @ 2022-07-09 21:00:46
ok