primer

C++ typedef typename 作用

时光怂恿深爱的人放手 提交于 2021-02-17 10:01:56
C++ typedef typename 作用 C++的一些语法让人看着费解,其中就有: typedef typename std :: vector <T> ::size_type size_type; 1 详见《C++ Primer》(第五版)P584 有些不懂的语法有时候虽然知道大概是什么意思,忽略一下就过了其实,不过心里老是膈应,就刨根问底一次吧。 vector::size_type 明白上述语法,首先要先看清 vector::size_type 的意思。参考《STL源码剖析》不难发现,其实: template <class T ,class Alloc=alloc> class vector{ public: // ... typedef size_t size_type; // ... }; 1 2 3 4 5 6 7 这样就看得很清晰了, vector::size_type 是 vector 的嵌套类型定义,其实际等价于 size_t 类型。 也就是说: vector < int > ::size_type ssize; //就等价于 size_t ssize; 1 2 3 为什么使用typename关键字 那么问题来了,为什么要加上typename关键字? typedef std :: vector <T> ::size_type size_type; //why

C语言从入门到精通到实战学习路线图(指针/函数/数组/文件/标准库/接口/单片机/数据结构/算法/面试)

依然范特西╮ 提交于 2021-01-30 01:17:22
C语言是一门永不过时的编程开发语言,到处都离不开它,学好这门编程语言,用处极大。但是如何学好学精它,却让人很头疼,在学习过程中总会遇到各种各样的疑难杂症。 收集整理了一些C语言编程学习必备的资料,涵盖:C语言学习路线图,编程工具,编程思维,指针,函数,数组,文件,标准库,常见问题解惑,数据结构,常用算法,算法分析,接口实现,单片机开发,程序实例,名题范例,面试宝典等等。认真看完这些,估计都能成为大神。 关键字:C C语言 指针 函数 数组 文件 标准库 接口 单片机 数据结构 算法 面试 【目录】(点击标题可单个下载) 00.1.啊哈C语言!逻辑的挑战(修订版) 00.2.啊哈C语言编程工具 00.3.啊哈C! 01.C Primer Plus 02.C程序设计语言 03.C和指针 04.征服C指针 05.C语言解惑 06.C语言解惑:指针、数组、函数和多文件编程 07.C陷阱与缺陷 08.C专家编程 09.1.C标准库 09.2.程序员的自我修养—链接、装载与库 10.1.啊哈!算法 10.2.数据结构与算法分析:C语言描述 10.2.数据结构与算法分析:C语言描述_随书代码 11.C语言开发实战 12.C语言接口与实现 13.51单片机C语言教程入门、提高、开发、拓展全攻略 14.1.C语言趣味程序100例 14.2.C语言名题精选百则技巧篇 14.3.C语言范例开发大全 15

堆和堆排序

空扰寡人 提交于 2021-01-22 00:41:48
堆和优先队列 普通队列:FIFO,LILO 优先队列:出队顺序和入队顺序无关,和优先级相关。一个典型应用就是操作系统中。动态选择优先级高的任务执行 堆的实现 最典型的堆就是二叉堆,就像是一颗二叉树。这个堆的特点,下图可以看出: 这里以最大堆为例, ,每一个节点都不大于其父亲节点。另外,堆必须是一颗完全二叉树,正因为此,我们可以使用数组来存储二叉堆如下图所示,给二叉堆自上而下,自左到右表上序号, 由图中节点序号,可以看出,如果某个节点的序号为k,则其左子节点的序号是2*k,右子节点的序号是2*k+1,这里,与通常我们数组的规定不同,根节点是从1开始的,不是0,这也是堆的经典实现方式。不过从0开始标定,也会有类似性质,只是常数的变化。 下面就要实现最大堆,做成一个MaxHeap 类,最大堆中要存储数据,为了通用性,将这个类做成一个模板类。这个最大堆首先得有一个存储数据的数组,在用户定义之前,我们不知道数组的大小,所以该数组是一个指针类型,相应的会在构造函数中初始化该数组。还需要一个int型的size来表示堆中元素数量。所以堆的基本框架如下: 1 template<typename Item> 2 class MaxHeap{ 3 private : 4 Item* data; 5 int count; 6 private : 7 int shiftDown( int k){ 8 9 }

C语言入门推荐

|▌冷眼眸甩不掉的悲伤 提交于 2021-01-13 14:56:10
很多想要学习编程或者C语言的小伙伴,苦于一时急促,无法下手,现在柳猫就推荐几本入门级的C语言书籍,并对它们的特点做些简短的总结,各位小伙伴根据需要选读。 1. How to Think Like a Computer Scientist: C version 这是我读过最易懂的C语言教材。 虽然它只讲解最基本的语法,但是写得特别好懂,深入浅出,读起来不觉得累,而且它还允许免费下载。我认为,这是C语言的首选入门教材。 Computer Scientist 2. C Primer Plus 和 C Programming: A Modern Approach (《C语言程序设计:现代方法》 C Primer Plus C Progmamming 上面这两本,都是著名的C语言初级教材,都是厚厚的大部头。 我通读过它们,感觉都写得不错,都值得推荐。但是因为这两本书定位类似,内容重复,相比之下,我觉得C Primer Plus可能更适合中国读者的思维,更易读一些。 3. C Programming Language (2nd Edition) (《C程序设计语言》) C Programming Language 这是最著名的C语言书籍。 但是,它不是写给初学者看的,更偏重C语言的编程技巧和算法思维。我读过两遍,还是觉得很多地方没读懂。 4. 国产教材 通常来说,国产教材质量不高,不值得推荐

中国大学MOOC的生物信息学之华中农业大学

你离开我真会死。 提交于 2021-01-10 14:02:47
我们首先在生信技能树分享了: 中国大学MOOC的生物信息学公开课之河南科技大学 不知道学习的朋友多不多,反正留言参与推荐高校生物信息学课程改革的朋友很少。 确实各大高校的课程设置,跟不上生物信息学的发展速度啊!这两天我会把全部中国大学MOOC的生物信息学课程搬运过来推荐给大家,如果确实有需要的朋友,可以查漏补缺,适当看一看。但是我们的重点是讨论一下新时代的生物信息学课程设置,不应该是这样的泛泛而谈的生物信息学认知课。 我这里起一个头,我希望高校可以开设的课程包括; 肿瘤数据库之TCGA计划(希望可以介绍NGS技术在肿瘤学的应用,TCGA计划的来龙去脉,数据背后的生物学认知革命) 实用生物信息学统计大全(包括差异分析,富集分析,GSEA,WGCNA,GSVA等等) 生物信息学图表绘制课(各种NGS组学数据下游分析图表展示示例讲解) 其它待你补充哦 今天我们推荐的是华中农业大学的生物信息学课程 https://www.icourse163.org/course/HZAU-1205902809 课程前言 本课程在原国家级精品课程、国家级精品资源共享课《生物信息学》基础上转型升级,是一门生命科学领域和信息科学领域的应用型交叉学科。课程共分为八章,分别是生物信息学概要、生物信息学数据库、生物信息学数据库检索、系统演化分析、基因分析和基因组注释、蛋白质分析、基因组浏览器、生物信息学其他应用

C++ primer

走远了吗. 提交于 2021-01-07 08:19:13
第一部分: C++基础 3 字符串、向量和数组 6 函数 7 类 8 IO库 第九章:顺序容器 1 容器适配器 第十章:泛型算法 1 泛型算法 2. 初识泛型算法、定制操作 3. 再探迭代器、泛型算法那结构、特定容器算法 第十一章:关联容器 第十二章:关联容器 1 动态内存与智能指针 第十三章:拷贝控制 拷贝、赋值与销毁和拷贝控制与资源管理、交换操作 第十四章:重载运算与类型转换 第十五章:面向对象程序设计 1 OOP概述、定义基类和派生类、虚函数、抽象基类 2 访问控制与继承、继承中的类作用域 3 构造函数与拷贝控制 4 虚函数表剖剖① 5 C++类内存布局 6 多重继承与虚继承 第十六章:模板与泛型编程 1 定义模板 2 模板实参推断 3 可变参数模板 第十七章:模板与泛型编程 第十九章:模板与泛型编程 1 控制内存分配 2 运行类型识别 3 嵌套类、union、局部类 第二十章:杂项 来源: oschina 链接: https://my.oschina.net/u/4320349/blog/3982099

guide, manual, tutorial之间的区别

≡放荡痞女 提交于 2021-01-05 10:24:53
总结:一般而言,guide表示用户指南,提供简要的信息;manual表示用户手册,提供较为完整深入的说明;tutorial表示教程,提供详细的说明,侧重于给没有经验的人一步一步进行详细的指导。实际情况中,guide和manual常混用。 以下译自网络,感谢解答问题的native speaker :P Difference between user guide and user manual - Difference All 用户指南(user guide)是为了向使用特定系统的方法提供帮助而编写的文档。用户指南主要涉及电子产品,计算机硬件和软件。 用户手册(user manual) :它是一个用户指南,特别用于向用户提供有关使用方法的说明。区别 Basis User guide User manual 同义词 Synonyms Instruction manual 对象/目的 Objectives/Purpose 提供用户相关的关键信息 To the point informtion that is relevant to the user 详细的技术指导 Technical detailed instruction 同义词 Synonyms Catalog, directory, guidebook, handbook, manual, key, reference key,

C++ 多文件编译简述:头文件、链接性、声明与定义

假装没事ソ 提交于 2020-12-26 05:47:12
[TOC] Commen Sense C++ 在编译时对每个翻译单元(Translation Unit,通常是文件,下文以文件代称)单独编译。 注意区分 声明(Declaration) 和 定义(Definition) : 声明 规定了变量的类型和名字; 定义 则负责创建与名字关联的实体,定义还申请存储空间。[1] C++ 的“单定义规则”指出变量只能有一次定义。 注意区分 作用域(Scope) 和 链接性(Linkage) : 作用域 描述名称在文件的多大范围可见; 链接性 描述名称如何在不同单元间共享。 头文件 头文件中常包含的内容 函数原型 使用 #define 或 const 定义的符号常量 结构声明 类声明 模板声明 内联函数 普通函数的定义不能放在头文件中,即使使用了 #ifndef 等预处理指令防止头文件被重复包含。这是因为每个源文件被单独编译,头文件中的函数定义会使链接后的程序包含多个重复定义,预处理指令只能保证单个文件被单独编译时不会出现头文件的重复展开。 内联函数需要在每一个调用点都对编译器可见,因此通常直接放在头文件中被所有实现文件 include。 模板函数和模板类的定义不会产生任何“实体”函数,因此可以出现在头文件中。又由于与内联函数类似的原因,其通常都被放在头文件中。 类的声明和实现通常分处于一个头文件( .h )和实现文件( .cpp )中

curl 的用法指南

妖精的绣舞 提交于 2020-12-25 15:39:36
作者: 阮 一峰 原文链接:http://www.ruanyifeng.com/blog/2019/09/curl-reference.html 简介 curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。 它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。 本文介绍它的主要命令行参数,作为日常的参考,方便查阅。内容主要翻译自《curl cookbook》。为了节约篇幅,下面的例子不包括运行时的输出,初学者可以先看我以前写的《curl 初学者教程》。 不带有任何参数时,curl 就是发出 GET 请求。 $ curl https://www.example.com 上面命令向www.example.com发出 GET 请求,服务器返回的内容会在命令行输出。 -A -A参数指定客户端的用户代理标头,即User-Agent。curl 的默认用户代理字符串是curl/[version]。 $ curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google