vector详讲
Posted boost
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector详讲相关的知识,希望对你有一定的参考价值。
移动语义:
push语句有时候会通过移动语义来提高性能
#include <iostream> #include <vector> class Element { public: Element(int im,std::string string) : Im(im),mString(string) { } virtual ~Element() {} private: int Im; std::string mString; }; int main() { std::vector<Element> myIntVec; Element myEle(10,"abcd"); myIntVec.push_back(myEle); return 0; }
myIntVec不是临时对象,所以在执行这条语句的时候,会对 myIntVec 进行复制副本,所以为了避免这种复制,可以这样。
myIntVec.push_back(std::move(myEle));
这样做的后果就是再也不能调用myEle了,
在push_back(const T&& val );这样的定义,可以这样:
myIntVec.push_back(Element(10,"abcd"));
emplace操作
在C++中emplace的意思就是 "放置到位"的意思。std::vector的方法有emplace_back();这个方法与push_back()不同就是他不会复制和移动任何数据,只会在容器内部分配空间,就地创建对象。
以上是关于vector详讲的主要内容,如果未能解决你的问题,请参考以下文章
Appium基础:Desired Capabilities详讲