c++學習筆記,c++結構體拷貝,c++深拷貝與淺拷貝

在這裏插入圖片描述

struct type {
    int i;
    std::string s;
    char *c;
    int a[2];
    std::vector<int> v;
    std::map<std::string, int> m;
};
int main()
{
    std::cout << "hello" << std::endl;
    
    type t1;
    t1.i =10;
    t1.s = "1234";
    t1.c = "qwer";
    t1.a[0] = 1;
    t1.a[1] = 3;
    t1.v.push_back(7);
    t1.v.push_back(8);
    t1.m["1"] = 1;
    printf("t1 -- i:%d ->%p, s:%s ->%p, c:%s ->%p, a:{%d,%d} ->%p, v:[%d,%d] ->%p, m[\"1\"]=%d ->%p\n",
                t1.i, t1.i, t1.s.c_str(), t1.s, t1.c, t1.c, t1.a[0], t1.a[1], t1.a, t1.v[0], t1.v[1], t1.v, t1.m["1"], t1.m);
    
    type t2 = t1;
    printf("t2 -- i:%d ->%p, s:%s ->%p, c:%s ->%p, a:{%d,%d} ->%p, v:[%d,%d] ->%p, m[\"1\"]=%d ->%p\n",
                t2.i, t2.i, t2.s.c_str(), t2.s, t2.c, t2.c, t2.a[0], t2.a[1], t2.a, t2.v[0], t2.v[1], t2.v, t2.m["1"], t2.m);
    type *t3 = new type();
    *t3 = t1;
    printf("t3 -- i:%d ->%p, s:%s ->%p, c:%s ->%p, a:{%d,%d} ->%p, v:[%d,%d] ->%p, m[\"1\"]=%d ->%p\n",
                t3->i, t3->i, t3->s.c_str(), t3->s, t3->c, t3->c, t3->a[0], t3->a[1], t3->a, t3->v[0], t3->v[1], t3->v, t3->m["1"], t3->m);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章