案例1:v1、v2两个vector, 将v2后半部分内容赋给v1

区间成员函数版本:

std::vector<int> v1;
...
std::vector<int> v2;
...
v1.assign(v2.begin() + v2.size() / 2, v2.end());

单元素成员版本:

std::vector<int> v1;
...
std::vector<int> v2;
...
v1.clear();
for (auto iter = v2.begin() + v2.size() / 2; iter != v2.end(); ++iter)
{v1.push_back(*iter);// 可能会导致多次分配空间
}

案例2:将int数组拷贝到vector前端

区间成员函数版本:

int data[10];
...
std::vector<int> v;
...
v.insert(v.begin(), data, data + 10);

单元素成员版本:

int data[10];
...
std::vector<int> v;
...auto iter = v.begin();
for (int i = 0; i < 10; ++i)
{iter = v.insert(iter, data[i]); // 返回插入的位置, 导致插入点后面元素的多次移动++iter;
}

优先选择区间成员函数的优点:区间成员函数写起来更容易, 更能清除的表达你的意图, 而且它们表现出了更高的效率。

05. 区间成员函数优先于与之对应的单元素成员函数相关推荐

  1. 2.区间成员函数优先于与之对应的单元素成员函数

    案例1:v1.v2两个vector, 将v2后半部分内容赋给v1 区间成员函数版本: std::vector<int> v1; ... std::vector<int> v2; ...

  2. python列表去重函数_对python中两种列表元素去重函数性能的比较方法

    测试函数: 第一种:list的set函数 第二种:{}.fromkeys().keys() 测试代码: #!/usr/bin/python #-*- coding:utf-8 -*- import t ...

  3. 【Python养成】常用内置函数 — 1(详解前8个内置函数)

    文章目录 前言 一.Python内置函数是什么? 二.内置函数详解 1.函数:help(x) 2.函数:map()函数 3.特别说明:lambda表达式 4.绝对值函数:abs(x) 5.函数 all ...

  4. 数组元素作为函数参数

    数组元素作为函数参数 数组元素作为函数参数 数组元素作函数实参 数组名作为函数参数 数组元素作为函数参数 数组可以作为函数的参数使用,进行数据传送.数组用作函数参数有两种形式,一种是把数组元素(下标变 ...

  5. 17.容器的成员函数优先于同名的算法

    有些STL 容器提供了一些与算法同名的成员函数.大多数情况下,应该使用这些成员函数,而不是相应的STL算法. 有两个理由: 成员函数往往速度快. 成员函数通常与容器结合地更紧密,这是算法所不能比的. ...

  6. 怎么将一个类的成员函数作为指针传递给另一个类的成员函数

    今天帮同学解决了一个问题,怎么把一个类的成员函数作为指针传递给另一个类的成员函数. 以前只接触过C语言中的函数指针: #include <iostream.h> void add(int ...

  7. C++学习45 流成员函数put输出单个字符 cin输入流详解 get()函数读入一个字符

    在程序中一般用cout和插入运算符"<<"实现输出,cout流在内存中有相应的缓冲区.有时用户还有特殊的输出要求,例如只输出一个字符.ostream类除了提供上面介绍过 ...

  8. 求三个长方柱的体积,数据成员包括length(长)、width(高)。要求用成员函数实现以下功能: (1)用键盘分别输入三个长方柱的长宽高; (2)计算长方柱的体积;(3)输出3个长方柱的体积。

    项目要求: 需要求三个长方柱的体积,请编写一个基于对象的程序,数据成员包括length(长).width(高).要求用成员函数实现以下功能: (1)用键盘分别输入三个长方柱的长宽高: (2)计算长方柱 ...

  9. 设计一个程序,求正方形和长方形的周长,具体要求如下: (1) 定义正方形类Square作为基类,包含数据成员边长,以及构造函数、求正方形周长的虚函数、输出函数。 (2) 定义类Square的共有派

    设计一个程序,求正方形和长方形的周长,具体要求如下: (1) 定义正方形类Square作为基类,包含数据成员边长,以及构造函数.求正方形周长的虚函数.输出函数. (2) 定义类Square的共有派生类 ...

  10. C++模板学习02(类模板)(类模板语法、类模板与函数模板的区别、类模板中的成员函数创建时机、类模板对象做函数参数、类模板与继承、类模板成员函数类外实现、类模板分文件编写、类模板与友元)

    C++引用详情(引用的基本语法,注意事项,做函数的参数以及引用的本质,常量引用) 函数高级C++(函数的默认参数,函数的占位参数,函数重载的基本语法以及注意事项) C++类和对象-封装(属性和行为作为 ...

最新文章

  1. C++中istream的使用
  2. POJ3498最大流,枚举终点,企鹅,基础最大流
  3. 如何使用XML 配置的方式配置Spring?
  4. apache-tomcat-7.0.54安装
  5. leetcode 224. 基本计算器(栈)
  6. linux信号值头文件位置,Linux C 信号处理机制
  7. oracle 加全文索引,Oracle创建全文索引
  8. 使用JSSDK分享页面
  9. 2020法研杯比赛阅读理解任务冠军参赛总结
  10. Oracle-Linux安装配置python3.6环境
  11. 浅谈Java两种并发类型——计算密集型与IO密集型
  12. 计算机科学与技术专业自我小结,最新计算机科学与技术专业毕业自我个人小结优秀范文原创...
  13. 投 资 网 站 建 设 方 案
  14. sh: arithmetic expression: expecting primary
  15. 【Unity Shader】聚光灯体积光效果的简单实现
  16. 自然语言生成技术现状调查:核心任务、应用和评估(2)
  17. 数据中心机房与机柜理线方法介绍
  18. 判断点在多边形内的算法(Winding Number详解)
  19. 信息学奥赛一本通——2066:【例2.3】买图书
  20. ln 软件链接目录时,当链接文件已经存在时,结果非预期

热门文章

  1. 《zabbix_agent客户端的添加》-5
  2. struts2自己定义拦截器
  3. Emacs下使用Stardict
  4. js 测试正则表达式
  5. 2.SOA架构:服务和微服务分析及设计--- 理解面向服务架构
  6. 6.Jenkins 权威指南 --- 高级构建
  7. 50.远程连接服务器 SSH, XDMCP, VNC, XRDP
  8. 147. class_exists()
  9. 24. Element namespaceURI 属性
  10. MSP---助力企业轻松上云