【Data】数据结构之C++程序设计(1)
一、函数与参数
1、传值参数:
template<class T>T Abc(T a, T b, T c){return a+b+b*c+(a+b-c)/(a+b)+4;}
template<class T>T Abc(T& a, T& b, T& c){return a+b+b*c+(a+b-c)/(a+b)+4;}
的情形。由于不需要把x,y 和z 的值复制给对应的形式参数,因此我们可以节省采用传值参数
进行参数复制时所需要的3 0 0 0次操作。
###(注意这里只是节省了复制构造函数的3000次操作,而没有节省析构函数的3000次操作)###
template<class T>T Abc(const T& a, const T& b, const T& c){return a+b+b*c+(a+b-c)/(a+b)+4;}
###(为什么这样呢?)###
在这种情况下,被返回的对象均被复制到调用(或返回)环境中。对于函数 Abc 的所有版本来说这种复制过程都是必要的,因为函数所计算出的表达式的结果被存储在一个局部临时变量中,当函数返回时,这个临时变量(以及所有其他的临时变量和传值形式参数)所占用的空间将被释放,其值当然也不再有效。为了避免丢失这个值,在释放临时变量以及传值形式参数的空间之前,必须把这个值从临时变量复制到调用该函数的环境中去。
T& X(int i, T& z)
定义了一个函数X,它返回一个引用参数Z。可以使用下面的语句返回z:
return z;
这种返回形式不会把z 的值复制到返回环境中。当函数X返回时,传值形式参数i 以及所有局部变量所占用的空间都将被释放。由于z 是对一个实际参数的引用,因此,它不会受影响。如果在函数名之前添加关键字c o n s t,那么函数将返回一个常量引用,例如:
const T& X (int i, T& z)
除了返回的结果是一个不变化的对象之外,返回一个常量引用与返回一个引用是相同的。
转载于:https://www.cnblogs.com/claire-study-note/archive/2013/04/19/3065505.html
【Data】数据结构之C++程序设计(1)相关推荐
- 分数计算器java报告_20182307 2019-2020-1 《数据结构与面向对象程序设计》实验四报告...
20182307 2019-2020-1 <数据结构与面向对象程序设计>实验四报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 陆彦杰 学号:20182307 实验 ...
- 上海交通大学python实验七答案_20192310 实验八《数据结构与面向对象程序设计》实验报告...
20192310 2020-2021-1 <数据结构与面向对象程序设计>实验八报告 课程:<程序设计与数据结构> 班级: 1923 姓名: 严嘉钰 学号: 20192310 实 ...
- 《数据结构与面向对象程序设计》第1周学习总结
20182316胡泊 2019-2020-1 <数据结构与面向对象程序设计>第1周学习总结 教材学习内容总结 简单java程序是有哪些部分组成的 Java程序好的排版布局是怎样的 程序开发 ...
- 河南师范大学846数据结构与C程序设计历年真题及答案
原文链接:https://blog.csdn.net/zhr199970910/article/details/107984605 目录 1.简介 2.获取 1.简介 河南师范大学846数据结构与C程 ...
- 839c程序设计语言kr,华东师范大学839数据结构(含c程序设计语言)考研
考研专业课笔记是各高校本科生的听课笔记,内容详实可靠,重点突出,极其有效地体现了该门课程的教学重点和授课导师的讲课内容.笔记一般30页-120页. 华东师范大学839数据结构(含c程序设计语言)笔记为 ...
- 20182326 2019-2020-1 《数据结构与面向对象程序设计》实验三报告
20182326 2019-2020-1 <数据结构与面向对象程序设计>实验三报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 刘颖洁 学号:20182326 实验 ...
- java凯撒加密socket,20192312吴欣欣 实验四 《数据结构与面向对象程序设计》实验报告...
20192312 2020-2021-1 实验四 <数据结构与面向对象程序设计>实验报告 课程:<程序设计与数据结构> 班级: 1923 姓名: 吴欣欣 学号:20192312 ...
- 山西大学c语言考试题,山西大学《876数据结构+C程序设计》考研题库详解
复习笔记 一.什么是数据结构 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科. 二.基本概念和术语 1数据 数据是对客观事物的符号表示,是计算机科学中所有 ...
- 833C语言程序设计与数据结构,2017年北方民族大学计算机技术833C语言程序设计与数据结构之C程序设计考研导师圈点必考题汇编...
一.选择题 1. 以下叙述中正确的是( ) A. 程序设计的任务就是编写程序代码并上机调试 B. 程序设计的任务就是确定所用数据结构 C. 程序设计的任务就是确定所用算法 D. 以上三种说法都不完整 ...
最新文章
- 【剑指offer-Java版】37两个链表的第一个公共结点
- Python Matplotlib 中文显示参数设置
- 云炬Android开发笔记 8代码生成器设计与实践(仿ButterKnife注解框架,编译期生成代码)
- ready与load的区别
- educoder 使用线程锁(lock)实现线程同步_线程间的通信(一)
- 编程挑战:字符串的完美度
- boot分布式计算 spring_腾讯T4大佬剖析SpringBoot2 :从搭建小系统到架构分布式大系统...
- java基础—Properties集合
- 关于PHP的工作流引擎
- Python接口测试
- 什么是IP地址、IP协议?
- 【catia对模型无法进行操作,只能对树型图操作】
- nrf52840蓝牙协议栈主机BLE串口
- Zigbee和WiFi的信道重叠
- AOP设计与原理(连接点,切入点与代理模式)——Spring AOP(二)
- 12306验证码图片获取
- AddressSanitizer: heap-buffer-overflow on address 0x602000000534 at pc 0x00000040699d bp 0x7ffce0afd
- 安卓手机整人代码c语言大全,求一个C语言整人代码!!!
- jQuery仿真翻书炫酷翻页动画插件
- php 正则保留数字和,只保留汉字,字母,数字正则