当前位置:   article > 正文

std::vector 拷贝

std::vector 拷贝

利用拷贝赋值操作符(深复制)

  1. vector<int> array{3,5,2,6,4};
  2. vector<int> outArray;
  3. outArray = array;

利用拷贝构造(深复制)

  1. vector<int> array{3,5,2,6,4};
  2. vector<int> outArray(array);

利用swap()函数(交换两个vector

会清空原vector数组

  1. vector<int> array{3,5,2,6,4};
  2. vector<int> outArray;//设为空
  3. outArray.swap(array);//清空array数组

利用assign()函数(清空并深复制)

  1. vector<int> array{3, 5, 2, 6, 4};
  2. vector<int> outArray{ 1,2,3 };
  3. outArray.assign(array.begin(),array.end());//清空原数据,赋予新数据={3,5,2,6,4}
  4. outArray.assign(5, 0);//50,清空原数据={0,0,0,0,0,}

内存拷贝

  1. vector<int> vec1 = {1, 2 , 3};
  2. vector<int> vec2;
  3. //memcpy( &vec2, &vec1, sizeof(int) * vec1.size() );
  4. memmove(&vec2, &vec1, sizeof(int) * vec1.size()); //vec1还是{12,3}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/452763
推荐阅读
相关标签
  

闽ICP备14008679号