C语言基础
法迪
Android系统与续航工程师、应用开发工程师
https://github.com/sufadi
332157261@qq.com
展开
-
47 C++基础-STL 容器实例
1. 顺序容器 vector#include <iostream.h>#include <vector>#include <string>using namespace std;// 遍历顺序容器void display(vector<int> &vec) { for(vector<int>::it...原创 2018-05-22 22:48:32 · 133 阅读 · 0 评论 -
45 C++基础-关联容器和容器适配器介绍
1. 关联容器map,set,multiset,multimap 是一种非线性的树结构,具体的说采用的是一种比较高效的特殊平衡检索二叉树——红黑树1.1 map提供一种“键-值”关系的一对一的数据存储能力。其“键”在容器中不可重复,且按一定顺序排列(其实我们也将set也看成一种键-值关系的存储,只是它只有键没有值,它是map的一种特殊形式)由于其实按链表的方式存储,他也继承了链表的...原创 2018-05-20 23:29:57 · 129 阅读 · 0 评论 -
43 C++基础-文件读写操作
1.输入输出流 iostreamistream 输入流类, ostream 输出流类2. 文件流c++在头文件 fstream.h 定义了文件流体系文件可以分为两大类:文本文件、二进制文件2.1 定义文件类对象fstream file; // 可读可写ifstream infile; // 可读不可写ofstream outfile; // 可写不可读...原创 2018-05-19 16:50:16 · 173 阅读 · 0 评论 -
42 C++基础-多态与抽象类
1. 多态调用同一个函数,根据不同需要实现不同的功能编译时多态性(函数重载)与运行时的多态性(虚函数)运行时对多态性指程序在执行之前,根据函数名和参数无法确定应该调用哪个函数,必须在程序执行过程中,根据具体的执行情况来动态确定。#include <iostream>#include "CurrentTime.h"#include "Time.h"using...原创 2018-05-19 11:53:43 · 214 阅读 · 0 评论 -
41 C++基础-派生类的使用
1. 派生类(子类)重写父类方法1.1 例如父类是24小时制的class CTime{public: int getHour();1.2 子类定义为12小时制#ifndef CURRENT_TIME_H#define CURRENT_TIME_H#include "Time.h"// 子类 CCurrentTime 继承父类 Ctimecl...原创 2018-05-18 23:56:34 · 481 阅读 · 0 评论 -
27 C++ 基础—面向对象基础
1. 面向对象1.1 结构体与类// C 语言struct Student {}// 类的定义格式class Student {}1.2 类的定义#include<iostream>using namespace std;// 类的定义格式class Student {// 公共public: void setAge(...原创 2018-05-12 12:34:32 · 163 阅读 · 0 评论 -
26 C++ 基础—函数
1. 引用作为函数的形参1.1 引用 int a = 0; // b 是 a 的引用,别名 int &b = a;1.2 引用作为函数的形参传统的 swap1 无法进行数字交换,但是swap2使用了引用作为形参则可以void swap1(int a, int b) { int temp = a; a = b; ...原创 2018-05-12 10:42:34 · 177 阅读 · 0 评论 -
24 标准库 vector
1. vectorvector是一个存放任意类型的动态数组,不需要考虑内存的增长和释放,具有良好的安全性2. 定义和初始化vector v1 vector v2(v1)vector v2 = v1vector v3(n ,value) // n 个重复元素#include<iostream>#include<vector>using ...原创 2018-05-11 21:52:38 · 166 阅读 · 0 评论 -
24 标准库 Sting
1. 定义,初始化头文件 string,并可以使用std作为命名空间#include<iostream>#include<iomanip>#include<string>using namespace std;int main(){ string str1; // 构造函数方式初始化 string str2("st...原创 2018-05-11 20:18:45 · 146 阅读 · 0 评论 -
40 C++基础-继承与派生基础
1.继承与派生基础被继承的类被称为基类、父类、或超类继承后的新类称为子类、派生类子类从父类获得特征称为继承1.1 父类#ifndef TIME_H#define TIME_Hclass CTime{public: CTime(); void setHour(int hour); void setMinute(int minute...原创 2018-05-17 23:58:34 · 135 阅读 · 0 评论 -
23 基本输入输出流
1. 标准输出流1.1 代码认识cout#include<iostream>using namespace std;int add(int a, int b) { return a+b;}int main(){ cout<<"Hello World!"<<endl; cout<<30.2<&...原创 2018-05-10 23:08:49 · 230 阅读 · 0 评论 -
44 C++基础-容器介绍
1. 容器容器分为:顺序容器,关联容器,容器适配类2. 顺序容器是一种各个元素之间有顺序关系的线性表 - verctor 将元素保持在连续的存储空间 - deque - list 双链表,从任何地方快速插入与删除2.1 vector相当于数组,可以通过下标随机访问,速度很快。但是在容器的中间位置添加和删除文件非常耗时。因为一次插入和删除操作都需要移动插入和删除位置...原创 2018-05-20 23:32:13 · 108 阅读 · 0 评论 -
27 C++ 基础—类和对象的使用
1.对象成员的使用1.1 第一种方法:访问对象 // 第一种方法:访问对象 Student mStudent; mStudent.setName("李白"); result = mStudent.getName(); cout<<"Name : " << result << endl;1.2 第二种方...原创 2018-05-14 18:16:28 · 150 阅读 · 0 评论 -
37 C++基础-运算符重载规则
1. 可以重载的运算符算法运算符 + - * / %逻辑运算符 && || !关系运算符 > < = >= <= == !=位运算符 ~ << >> & ^ |自增自减运算符 ++ –复合赋值运算符 += -= *= /= %=2.不能重载的运算符?: 或 * 或 ::(域) 或 sizeof...原创 2018-05-16 09:31:56 · 170 阅读 · 0 评论 -
36 C++基础-运算符重载基础
1.运算符重载例如 << 是C++ 中的左移运算符,但在输出操作中与cout 配合则被称之为流插入运算符,作用是进行输出。,这种就是运算符重载1.1 未进行运算符重载的demo#include "Time.h"#include "Date.h"#include <iostream>using namespace std;CTime AddTime...原创 2018-05-15 22:09:22 · 172 阅读 · 0 评论 -
35 C++基础-友元
1.友元C++ 中可以使用 friend 关键字将函数、声明为某个类的友元友元具有一些特权,可以访问 private 的成员友元只能授予,不能索取,单向,不能传递2. 友元函数在类体重使用 friend 关键字进行声明friend void fun(); // func 是非成员函数,不属于任何类#ifndef TIME_H#define TIME_Hcl...原创 2018-05-15 21:00:23 · 136 阅读 · 0 评论 -
36 VS2010 无法打开 xxx.h 源文件
1. 现象ddd2. 解决依次点击“项目—>配置属性—>C/C++—>常规”,在“附加包含目录”中加入.h文件所在的文件夹路径原创 2018-05-15 20:43:07 · 2648 阅读 · 0 评论 -
34 C++基础-const对象和const成员
1. const 对象const 对象不可再被修改const CTime mCTime;const 对象不能调用非const类型的成员函数 const CTime mCTime; mCTime.getHour(); 1>c:\users\fadi.su\documents\visual studio 2010\projects\tes...原创 2018-05-15 17:53:32 · 208 阅读 · 0 评论 -
46 C++基础-STL迭代器和算法介绍
1.迭代器迭代器提供对一个容器的对象的访问方法。迭代器就如同一个指针。事实上,c++的指针也是一种迭代器,但是迭代器不仅仅是指针除了使用下标来访问 vector 对象外,标准库还提供了另一种访问元素的方法:使用迭代器。迭代器是一种检查容器内元素并遍历元素的数据类型标准库为每一种标准容器定义了一种迭代器类。迭代器类型提供了比下标操作更加通用化的方法。所有的标准库容器都定义了相应的迭代器类...原创 2018-05-21 23:58:43 · 137 阅读 · 0 评论 -
33 C++基础-静态成员变量与静态成员函数
1.静态成员以 static 开头,为各个对象所共有。定义类时就为了静态数据成员分配空间,不随着对象的建立而分配空间引用方法: - 类名::静态成员 - 对象名:静态成员在类内的静态数据成员仅仅是对该成员的声明,同时还需要再类外部进行定义2.静态成员函数在声明成员函数是在函数钱添加static关键字静态成员函数一般是为了处理静态的数据成员与一般成员函数区别,...原创 2018-05-15 14:46:53 · 160 阅读 · 0 评论 -
32 VS2010中编辑C++,并且解决cmd闪退问题
1. cmd 闪退体验点击调试运行,还没看到cmd窗口的结果,数据就消失了2. 设置解决3. Ctrl + F5 快捷键方式运行原创 2018-05-15 11:40:55 · 773 阅读 · 0 评论 -
31 C++ 基础—this 指针和复制构造函数
1. this 指针this 指针是指向类对象的指针,隐式使用this指针,编译器完成#include "Student.h"#include &lt;string&gt;string Student :: getName() { return name;}void Student ::setName(string vaule){ name = va...原创 2018-05-15 09:55:43 · 377 阅读 · 0 评论 -
30 C++ 基础—对象的构造函数与析构函数
1. 构造函数处理对象的初始化Time.h#ifndef TIME_H#define TIME_Hclass CTime{public: // 构造函数 CTime(); // 带参数构造函数 CTime(int hour);Time.cpp#include "Time.h"// 构造函数CTime::CTime() {...原创 2018-05-14 23:01:47 · 138 阅读 · 0 评论 -
39 C++基础-流插入、提取运算符
1. 流插入和提取运算符istream& operator>>(istream& input, CTime& time);istream& operator>>(istream& input, CTime& time);重载之后就可以直接对 CTime 对象进行输入和输出,程序更加直观cout<1...原创 2018-05-17 12:24:50 · 916 阅读 · 0 评论 -
38 C++基础-重载一元和二元运算符
1. 重载双目运算符例如一个 == 的demo调用如下#include "Time.h"#include "Date.h"#include <iostream>using namespace std;int main() { CTime time1(12, 12, 12); CTime time2(12, 12, 12); b...原创 2018-05-16 23:33:55 · 411 阅读 · 0 评论 -
07 C ++ 基础 auto类型
1.auto 类型说明符C++ 11 新标准引入了 auto 类型说明符,用它就能让编译器替我们去分析表达式所属的类型auto item = val1 + val2;2.复合类型、常量和 auto编译器推断出来的 auto 类型有时候和初始值的类型并不完全一样,编译器会适当改变结果类型使其更符合初识化规则int i = 0. &r = i;auto a ...原创 2018-03-27 14:22:47 · 276 阅读 · 0 评论 -
C++基础 constexpr 和常量表达式
0.学习笔记《C++ primer》1.常量表达式const int max = 100; // 常量表达式const int limit = max +1; // 常量表达式const int size = getSize(); // 不是常量表达式,因为getSize()运行时才有值2.constexpr 变量constexpr 类型:由编译器来验证变量是否...原创 2018-03-27 12:13:43 · 334 阅读 · 0 评论 -
15 C++基础-多维数组
1.数组的数组int main() { // 数组的数组 int a[3][4]; // 表示 3 个数组,每个数组有 4 个元素 // 数组初始化 int b[3][4] = { {1, 2, 3 , 4}, {1, 2, 3 , 4}, {1, 2, 3 , 4} };...原创 2018-04-09 16:50:56 · 656 阅读 · 0 评论 -
05 C++ 基础 const 限定符
1.const 对象const int buffersize = 512;//const 对象一旦创建后其值就不能再改变extern const int buffersize = 512;// extern 使其能被其他文件使用2. 引用和 constconst int ci = 1024;const int &r = ci;// 引用及其对应的对象都是常量...原创 2018-03-27 09:45:16 · 237 阅读 · 0 评论 -
04 C++ 基础-指向指针的指针(学习笔记)
1.指向指针的指针指针是内存中的对象,允许吧指针的地址再存放到另一个指针中,这里我们通过*个数区分指针的级别#include <iostream>using namespace std;/** * 指向指针的指针 * * 指针是内存中的对象,允许吧指针的地址再存放到另一个指针中,这里我们通过*个数区分指针的级别 */int main() { i...原创 2018-03-26 19:50:38 · 365 阅读 · 0 评论 -
14 C++基础-数组
1.数组和 Vector数组大小固定,这一特性在某些场景下运行时性能较好数组类似于 vector,适用于不清楚元素的确切个数2.定义和初始化数组数组声明形如 a[d], 其中大小必须大于 0 const unsigned sz = 10; // 常量表达式 int arr[sz]; // 含有 10 个整数的数组 int *parr[10]...原创 2018-04-08 19:36:59 · 257 阅读 · 0 评论 -
13 C++基础 迭代器
1.迭代器Java 设计模式的迭代器模式,主要是实现通用型遍历方式。C++中所有标准库容器都可以使用迭代器进行访问对象元素 - begin 为迭代器的第一个迭代器,正向迭代器 - end 为迭代器的下一迭代器 - 如果容器相同,则 begin 和 end 返回相同一个迭代器,即同为尾迭代器 /** * 迭代器 */int main() { string str("...原创 2018-03-30 19:47:07 · 313 阅读 · 0 评论 -
12 C++ 基础 标准库类型 vector 容器
1.C++ 基础 标准库类型 vector 容器标准库类型 vector 容器,其中所有对象的类型都相同作为一个类模板,vector iVec 表示保存类型为int对象的集合2.定义和初始化 vector 对象vector v1;vector v2(v1);// v2 是 v1 的副本vector v2 = v1;vector v3(n, val); // v3 包含了...原创 2018-03-30 15:11:00 · 216 阅读 · 0 评论 -
03 C++ 基础笔记-指针
1. 指针的四种状态指针p本身地址 &p = 0x28ff40,保持 i 对象的地址 p = 0x28ff44, i 对象的值为 *p = 123指向一个对象指向紧邻对象所占空间的下一个位置空指针,意味着指针没有指向任何对象无效指针,上述三种情况的其他值#include <iostream>using namespace std;/** * 指针...原创 2018-03-24 11:47:59 · 261 阅读 · 0 评论 -
Eclipse的C与C++插件
1.下载一体包http://www.eclipse.org/downloads/eclipse-packages/ 2.交叉编译工具配置http://dl.pconline.com.cn/download/364149-1.html配置环境变量 C:\MinGW\bin3.运行一个 helloworld代码如下/* ================...原创 2018-03-13 16:19:53 · 1360 阅读 · 0 评论 -
C++基础 decltype 类型指示符
1.decltype 类型指示符deltype :C++11 作用:选择并返回操作数的数据类型/** * deltype :C++11 作用:选择并返回操作数的数据类型 * 编译器分析表达式并得到它的类型,却不实际计算表达式的值 */int main() { decltype (f()) sum = x; // sum 的类型就是 f 的返回类型 retur...原创 2018-03-27 18:30:01 · 402 阅读 · 0 评论 -
09 自定义数据类型 struct
1.头文件 Sales_data.h #ifndef ()#endif 预编译防止重复定义#ifndef SALES_DATA_H_#define SALES_DATA_H_#include <string>/** * 自定义数据结构 */struct Sales_data { // 书本编号 std::string bookNo; ...原创 2018-03-27 20:53:22 · 355 阅读 · 0 评论 -
10 C++基础 - 命名空间的 using 声明
写法 1using namespace::name,声明后就可以直接访问命名空间中的名字#include <iostream>using namespace std;/** * 命名空间 */int main() { std::cout<<"Hello world"<<std::endl; return 0;}...原创 2018-03-28 09:55:04 · 222 阅读 · 0 评论 -
22 C++ 基础-返回 this 的成员函数
1. 返回 *this 的成员函数返回 *this 成员的函数,mScreen.move(4).set(‘#’); int main() { Screen mScreen("Hello World"); mScreen.move(4).set('#'); /*mScreen.move(4); mScreen.set('#');*/ // S...原创 2018-05-03 19:08:22 · 585 阅读 · 0 评论 -
22 VS2010 Helloworld
1. 下载与安装说明http://www.downza.cn/soft/185464.html2. Vs2010 的hello world2.1 新建一个项目一路next,这里可以选择新建一个空项目2.2新建文件我们取名main2.3 修改字体大小2.4 添加行号2.5 HelloWord#includ...原创 2018-05-10 08:12:48 · 319 阅读 · 0 评论