zoukankan      html  css  js  c++  java
  • 第27月第11天 右值引用

    1.

    拷贝的开销可以很大。举例来说,对于std::vector,像v2=v1这样的赋值通常包含一次函数调用,一次内存分配和一个循环。当我们确实需要一个vector的两份拷贝时,这当然是可接受的,然而很多情况下我们并不需要:我们常常将一个vector从一个地方复制到另一个地方,接着便覆写了旧的版本。考虑下面的代码:

    https://blog.csdn.net/steedhorse/article/details/6847937

    class A
    {
    private:
        int data;
    public:
        A(int i):data(i) { std::cout << "调用构造函数" << std::endl; }
        A(const A& other) {
            std::cout << "调用拷贝构造函数" << std::endl;
            data = other.data;
        }
        A& operator=(const A& other) {
            std::cout << "使用赋值运算符" << std::endl;
            data = other.data;
         return *this; }
    ~A() { std::cout << "调用析构函数" << std::endl; } }; int main() { A a(1); A b(2); vector<A> v1; v1.push_back(a); v1.push_back(b); vector<A> v2(boost::move(v1)); return 0; }
  • 相关阅读:
    ionic打包步骤(安卓)
    使用ionic开发时用遇到监听手机返回按钮的问题~
    SQL语句
    SQL小结
    AangularJS的表单验证
    AangularJS过滤器详解
    mysql基础一
    初识rabbitmq
    对数字加千分号实现
    rabbitmq安装
  • 原文地址:https://www.cnblogs.com/javastart/p/10100954.html
Copyright © 2011-2022 走看看