将 std::list 元素插入到 std::list
std::list <std::list <int>> mylist;
std::list <int> mylist_;
mylist_.push_back(0);
mylist.push_back(mylist_);
是否可以在不创建 temporary 本地子列表 (mylist_) 的情况下将子列表插入到列表 (mylist) 中,并且最好使用类型(子列表)作为指针就性能而言,列出(mylist)?
std::list <std::list <int>> mylist;
std::list <int> mylist_;
mylist_.push_back(0);
mylist.push_back(mylist_);
is it possible to insert a sub-list into the list (mylist) without creating the temporary local sub-list (mylist_) and would it be better to use the type (sub-list) as pointer in list (mylist) in terms of performance?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果没有临时变量,你就无法真正做到这一点,但你可以更简洁地做到这一点:
正如 JonM 指出的那样,临时变量可能会被任何像样的编译器优化掉。
您可以使用数组:
诸如 Boost.Assign 缓解一下:
性能方面,这取决于您想要做什么 - 例如,如果您希望列表被大量传递,请使用(最好是智能)指针来避免无休止的复制。
You can't really do it without temporaries, but you can do it more concisely:
As JonM notes, the temporary will probably be optimized away by any decent compiler.
You can use arrays:
Utilities like Boost.Assign ease that:
Performance-wise it depends on what you want to do - if you e.g. expect the lists to be handed around much, use (preferrably smart) pointers to avoid endless copying.