C++基础:: struct vs class
struct:所有成员都是public
当我们需要直接访问结构或者类的数据成员时,而不欲打破类(class
)对数据成员都是protected
或者private
的约定俗成的规范(convention),这时struct
便是一个更为合适的选择,比如C++标准库对pair
工具类(在<utility>
中定义)的设计:
namespace std
{template<typename T1, typename T2>struct pair{// memberT1 first;T2 last;}
}
因为我们在客户端编程时,是把pair对象当做一种容器
来使用的,既然是容器,存取元素便是基本操作:
std::pair<T1, T2> p = getAPair();
p.first ...
p.second ...
function object
当作为仿函数的一些类没有特别的数据成员时或者继承体系时,而且主要是一个括号运算符重载(operator())时,一般使用struct
来定义:
我们暂且以一元运算unary_negate
为例:
template<typename Arg, typename Result>
struct unary_function
{typedef Arg argument_type;typedef Result result_type;
}template<typename T>
struct negate :public unary_function<T, T>
{T operator()(const T& x)const {return -x; // 本质的操作就这一句,// 接收一个T类型的变量,返回其负值}
}
客户端程序:
int main(int, char**)
{std::vector<int> src{0, 1, 2, 3, 4};std::vector<int> dst(src.size());std::transform(ivec.begin(), ivec.end(), dst.begin(), ::negate<int>());std::copy(dst.begin(), dst.end(), std::ostream_iterator<int>(std::cout, " "));return 0;
}
C++基础:: struct vs class相关推荐
- ibm aix_IBM AIX设备驱动程序开发
在传统的UNIX®中,术语" 设备"指的是硬件组件,例如磁盘驱动器,磁带驱动器,打印机,键盘,伪设备(例如控制台,错误特殊文件和null特殊文件)等等. 在AIX中,这些设备称为内 ...
- 秋招经历(2020蒟蒻)
秋招准备结束了,而我只能去捡漏.本人秋招目标比较不明确,但对于一个普通人,寻找合适自己的发展道路,并不容易.所以我在秋招过程中做了很多的尝试,职业生涯很长,选择期的犹豫还是有必要的.当然,对于身边目标 ...
- Celoria的板子(last update:20201017)
文章目录 数据结构 树状数组 基础 二维树状数组 逆序对 线段树 CDQ分治 树论 树的重心 定义 性质 代码 树的直径 性质 代码 LCA 主席树 平衡树 替罪羊树 Treap 区间翻转 Splay ...
- 在Java绘图坐标原点在_java 绘图
java 绘图 圆形.线条.矩形.填充 插入图片 文字 //绘图 import java.awt.*; import javax.swing.*; public class Index extends ...
- struct用法_精讲响应式webclient第1篇-响应式非阻塞IO与基础用法
笔者在之前已经写了一系列的关于RestTemplate的文章,如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层HT ...
- [C/C++基础知识] 面试再谈struct和union大小问题
最近找工作参加了很多笔试,其中考察结构体和联合体的大小问题是经常出现的一个问题.虽然题目简单而且分值比较低,但是还是想再给大家回顾下这些C和C++的基础知识.希望文章对你有所帮助~ P ...
- Hive基础08、Hive引入Struct结构体
Hive基础08.Hive引入Struct结构体 1.建表语句 创建一个温良贤淑女子的表 英文关键字解析: 1.CREATE TABLE 创建一个指定名字的表,如果库中已有相同名的表,则抛出异常: 用 ...
- Golang 基础知识(十一.struct结构体)
struct结构体 1.定义 2.匿名结构体 3.键值对初始化 4.构造函数 4.1 (值)方法和接收者 4.2 (指针)方法和接受者 4.3 结构体的"继承 4.4 序列化与反序列化 4. ...
- 【零基础学C语言】知识总结八:struct 结构体与 union 共用体
struct 结构体 struct即结构体,C程序中经常需要用相关的不同类型的数据来描述一个数据对象.例如,描述学生的综合信息时,需要使用学生的学号.姓名.性别等不同类型的数据时,像这种数据类型总是在 ...
最新文章
- struts2 form标签加上validate=true就出错的解决办法
- C#3.0学习笔记(8)浅谈接口interface
- parameter localparam define的区别
- QQProtect.exe(Q盾)
- SVM学习——在matlab上安装libsvm库(一)
- 3_V1-类和对象 -- 默认成员函数
- php框架使用教程,php框架laravel excel包使用教程介绍
- jboss7.1.安装配置
- 研究员使用新型CPU攻击技术 “SmashEx” 攻破 Intel SGX
- javascript 函数,数组,document.write()
- unslider.js 实现移动web轮播
- 拓端tecdat|R语言社区发现算法检测心理学复杂网络:spinglass、探索性图分析walktrap算法与可视化
- 怎么卸载虚拟机中的mysql_虚拟机卸载mysql数据库
- 基于OpenCV的简单人流量统计
- 3串锂电池充电保护板设计
- Golang里的AES加密、解密
- 【期末复习笔记】知识产权法——著作权、专利法、商标权
- statement的意思和用法
- java环巢湖区域旅游网站计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
- Oracle数据库深入学习
热门文章
- spring boot部署实战
- 域控查看ldap端口命令_LDAP基础安装与简单入门使用
- 如何在html上做弹框效果,网页|利用提示框(Tooltip)实现弹窗效果
- python中3个while循环_Python3 里怎么让一个包含 while 循环的异步函数不断运行,而不阻塞正常的代码流程...
- IntelliJ IDEA 激活
- Sklearn专题实战——针对Category特征进行分类
- LeetCode 222. 完全二叉树的节点个数(递归)
- tensorflow中的global_step参数(转)
- zookeeper学习之环境搭建
- oracle有三种类型的异常错误: 预定义 ( Predefined )错误里面的常见错误