设为首页 加入收藏

TOP

C/C++中容器vector使用方法(二)
2014-07-19 23:03:42 来源: 作者: 【 】 浏览:334
Tags:C/C 容器 vector 使用方法

 

  vec.assign(10, 1); // 替换为10个1

  pr_vector(vec);

  // vector没有向头部插入数据的原生方法,只能通过insert()方法来操作,插入位置都为指针指向的前一个位置

  // 具体有4种

  // 第一种vec.insert(p, t); p为自身的迭代器,t为需要插入的值,返回值为指向新添加元素的迭代器

  auto p = vec.insert(vec.begin() + vec.size()/2, 6688);

  // 第二种vec.insert(p, n, t); p为自身的迭代器,插入n个t,返回值为指向新添加的第一个元素的迭代器,如果n为0,则返回p

  vec.insert(p, 3, 4);

  // 第三种vec.insert(p, b, e); p为自身的迭代器,b、e为同类型其他vec对象的迭代器,返回值为指向新添加的第一个元素的迭代器。范围为空,则返回p

  vec.insert(p, vec2.crbegin(), vec2.crend()); // const 反向迭代器

  // 第四种vec.insert(p, il); p为自身的迭代器,il为元素值列表,返回值为指向新添加的第一个元素的迭代器,列表为空,则返回p

  vec.insert(vec.begin(), {9,8,7,6,5,4,3,2,1,0});

  pr_vector(vec);

  // 善用使用insert返回值,可以实现特定位置的反复插入,以上结果已说明

  // emplace操作, 【c++11】emplace_front【vector没有】、emplace、emplace_back对应push_front【vector没有】、insert、push_back

  std::vector per = {{"The_Third_Wave", 100, }}; // 类初始化+vector初始化,所以{{}, {}}必须的

  per.emplace_back("The_Third_Wave", 188, );

  per.emplace(per.begin() + 1, Person("The_Third_Wave", 168, ));

  for (auto &p: per)

  {

  print(std::cout, p);

  }

  // 删除操作,注意编译器不检查元素是否存在,所以坑自己填

  // vec.pop_back(),vector没有pop_front()

  vec = {0, 1, 2, 3, 4, 5, 6, 7, 8 ,9};

  vec.pop_back();

  pr_vector(vec);

  // vec.erase(p)【删除迭代器p所指元素,返回值为:被删元素之后的迭代器。p指向尾部,返回尾后迭代器,如果p是尾后迭代器,那就坑死你了,恭喜!】

  vec.erase(vec.begin() + 8);

  pr_vector(vec);

  // vec.erase(b, e)【删除迭代器b,e所指范围元素,返回值为:被删元素之后的迭代器。如果e是尾后迭代器,返回的还是尾后迭代器,不坑,恭喜!】

  vec.erase(vec.begin() + 3 , vec.end() - 1);

  pr_vector(vec);

  // vec.clear()删除所有,返回值为void

  vec.clear();

  pr_vector(vec);

  std::cout << "上面有空行就对了!否则就是出错了。";

  }

  结果为:

  [cpp] view plaincopy

  0 1 2 3 4 5 6 7 8 9

  0 9

  0 9

        

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++设计模式实现--职责链模式 下一篇sizeof的作用解释类中与类之外

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·About - Redis (2025-12-26 08:20:56)
·Redis: A Comprehens (2025-12-26 08:20:53)
·Redis - The Real-ti (2025-12-26 08:20:50)
·Bash 脚本教程——Li (2025-12-26 07:53:35)
·实战篇!Linux shell (2025-12-26 07:53:32)