再看C

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: 1. clrscr(void) 清屏 clear screen;gotoxy(x,y); 移动光标至指定位置; 2.定义活动文本模式窗口函数windowvoid window(int left,int top,int right,int bottom);//参数顺时针依次传入 textcolor...

1. clrscr(void) 清屏 clear screen;
gotoxy(x,y); 移动光标至指定位置;

2.定义活动文本模式窗口函数window
void window(int left,int top,int right,int bottom);//参数顺时针依次传入

textcolor(int newcolor);

BLACK  
BLUE
GREEN 
CYAN(青色)
RED
MAGENTA(洋红)
BROWN(棕色)   
LIGHTGRAY
DARKGRAY 
LIGHTBLUE
LIGHTGREEN
LIGHTCYAN
LIGHTRED 
LIGHTMAGENTA
YELLOW
WHITE

textbackground(int newcolor);//newcolor 同上面textcolor的符号常量;

标准的stdout 1 (printf(格式输出到stdout),fprintf(输出对象是文本文件或是stdout 1/stderr 2),cprintf(控制光标,文件及文本背景颜色))

 CPP新术语(inhrit,polymorphic,dataHide,encapsulation,class,object-oriented);

c++3种不同的编程方式:

C语言代表的过程性编程;
C++在C语言基础上添加的类代表的面向对象编程
C++模板支持的泛型编程;

使用c++编程的一个主要原因是使用面向对象的编程特性

(提供基本数据类型,运算符,控制结构,语法规则)C基础

(对象,类),模板(泛型)

操作系统是"能够管理计算机资源,处理计算机与用户之间交互的一组程序";

汇编assembly针对特定的CPU

low-level 直接操作硬件(直接访问CPU register(templete storage),memory);

编译器程序将高级语言翻译成特定计算机的内部语言

C编译原理

计算机语言需要处理的2个概念(数据(程序使用和处理的信息),算法(程序使用的方法))

procedural (强调的是编程的算法方面)

过程化编程首先要确定计算机应采取的操作,然后用编程语言来具体实现操作;

mongoDB 通过预先建立对象,再保存到集合中

在mongoDB shell命令提示符下操作

对象defined

rui01 = {name:"byRuiy"};

rui02 = {x:78};

use ruiy;

db.ruige.save(objectName);

mongoDB配置auth

mongoDB设置权限,用户账户

mongoDB远程用户连接语法结构

mongo -uuserName -ppwd serverIP:port/dbName;

开启mongodb服务室不添加任何参数时,所有的C端均可对数据库进行操作,而起可以远程访问,启动指定--auth,则可以对数据库进行用户验证
mongod --auth >> mongodb.log &
2,mongodb添加用户(超级管理员账号(在admin库中创建的用户 false/true指定是否是只读账号)和普通账号(指在除了非admin数据库下创建的用户,此账号仅仅能对数据下的Collections进行相关操作,至于权限问题,还有待跟进你在创建此账号指定的相关参数,此中一个非常关键的是true or false))

use dbName,不插入数据到指定的collections,单单在此数据库下,创建用户即可创建数据库;

在相关的数据库下创建用户后,在进行auth

C鼓励程序员开发程序单元(findction)来表示各个任务模块

过程化(procedural)-结构化(structured programming)->等待进化!

结构化编程技术反映了过程性编程思想

OOP(Object Oriented Programming)强调的是数据,与C面向过程的编程思路强调的是算法;

过程性编程,试图使问题满足语言的过程性

OOP试图让语言来满足问题的要求;

c++中,类是一种规范,描述了这种新型的数据格式

   对象是类规范的构造的特定数据结构;

mongoDB循环插入多行数据

类class描述对象-->"公司管理人员的"基本特征(姓名,头衔,工资,特长);

对象则代表特定的管理人员(ruiy,副总裁,$20000,linux运维\编程通吃);

类规定了可以使用那些数据来表示对象以及对这些数据执行那些操作,

eg:开发绘制矩形的计算机绘图程序,此时可以定义一个描述矩形的类

  定义的数据部分可以初步包括顶点的位置,长和宽,4条边的颜色和样式,矩形内部的填充颜色和图案;

  定义的操作部分可以包括移动,改变大小,旋转,改变颜色和图案,将矩形复制到另一个位置等等的操作

此类定义完成后,当使用该程序来绘制矩形时, 将根据类定义创建一个对象,对象保存了描述矩形的所有数据值,可以使用类方法修改矩形

OPP程序设计方法首先设计类,设计的类准确的标示了程序要处理的东西

从低级组织(类)到高级组织(程序) 自下而上bottom-up

数据和方法合并为类定义,多态(运算符和函数创建多个定义)

继承能够使用旧类派生新类

OOP不是讲重点放在任何上,而是放在表示概念上(class defined)

C++编程的核心点(设计编写有用,可靠的class)

 泛型编程(generic programming)强调的是独立于特定数据类型,OOP强调泛型数据(使问题适应语言),面向过程(C)强调算法,是语言适应问题

 泛型编程提供了执行常见任务(数据排序,合并链表)

术语(generic)指的是创建独立于类型的代码

关于程序的可移植性方面存在2个障碍:硬件(硬件特定的程序是不可移植的),将依赖硬件的部分放在函数模块中

程序可移植性问题的第二个障碍是:语言上的差异,

RTTI(run-time type infomation)

module,STL(stanard module library)

语言标准的目标是消除不一致性

C在发展过程中也借鉴和增加了C++的一些特性,(函数原型,const)

C++程序编译时可能需要连接C++库

-lg++(取决于g++编译器版本)

-lm

cygwin/minGW(包含丰富的GNU工具集)

查看程序的debugInfo

在每个程序的尾行添加如下代码

cin.get();//读取下一次键盘输入(Enter回车键),语句让程序等待类似在windows下Dos  system("pause");

不管是恩师还是忘年交,没有李经纬“扶上马送一程”,就没有今日李宁(自己很争气,也很NB,"体操王子",非阿斗!)的成就!还何来李宁运动品牌.-->我将永远困惑,也将永远寻找

程序debug

让C++程序一直打开,直到按Enter or pause ,在return 0语句前添加

cin.get();

main()中最后一条语句叫做返回语句(return statement),作用是结束main函数运行;

翻译器,将C++翻译成C,C++(header file)没有扩展名

C++对老式的C头文件部分保留了扩展名(C++使用这种头文件),有些C头文件被转化成C++头文件,这些头头文件被重新命名(从C原本头文件演变而来的C++头文件命名规则是在头文件名前加c)

eg,从C头文件math.h修改演变而来的cmath

通常编译器等根据扩展名来判断文件的类型

使用名称空间编译指令使用其中定义对程序可用

using namespace std;

using编译指令;

C++的另一个特性是(对名称空间的支持),(便于组织多个厂商之间的代码)

用于将产品封装在一个叫名称空间的单元中,此时便可以用名称空间的名称来支持想使用哪个厂商的产品;

程序使用名称空间来区分不同产品的不同版本

Microflop::wanda();

piscine::wanda();

C++编译器的标准组件(class,functions,variables),这些都被放置在叫std的名称空间中,仅当头文件没有扩展名h时才是这样;

这意味着iostream中定义的用于输出cout变量实际是std::cout

std::endl;

因此可以省略using namespace std;

直接使用std::cout<<

    std::cin>> .....;

using namespace std;

经过上面的语句我们就可以直接使用std名称空间定义的名称了,而不必使用std:前缀

using 编译指令使得std名称空间中的所有名称都可用

但通常在大型的项目中使需要的名称可用,使用using 来进行逐个申明

using std:cout;

using std:endl;

using std:cin;

对象是类的特定实例,类定义了数据的存储和使用方式

预定义的对象,c++从概念上如何解析这个过程

cout <<"he he! \n" \n换行符(转义序列)按键组合

cout << endl 控制符std 对象;

一行代码中不可分割的元素叫做标记(token),空白,制表符,回车统称为空白(white space)

赋值 动作是从右向左进行的;

对象知识(类简介)

class是C++面向对象编程(OOP)的核心概念

类是一行定义的一种数据类型(类,描述它能表示什么信息和可对数据执行那些操作)

类和对象的关系就像类型和变量的关系;

类定义描述的是数据格式及其用法

对象是根据数据格式规范创建的实体,

类描述了一种数据类型的全部属性(可执行的操作,数据格式),对象是根据类描述创建的实体

类描述指定了可对类对象执行的所有操作,

unix C++ compile

type functionName(argumentlist)

{

  statements;

}

高级语言(使用的指令更接近考虑问题的方式,而非接近计算机使用的详细操作步骤)

C中程序暂停getchar()

      system("pause")

C++中程序暂停 cin.get();

C compiler(linker)是将C语言源代码转换为可执行程序的程序工具;

int main(void)

{

.....;

return 0;//在函数头中请求函数调用返回的值是0,但在客观上无函数调用此main,(但请注意,不要忘了,系统哦,win/unix/linux,就是系统在调用main,因此在main中return 0;语句返回的值是返回给OS);

}

函数中的return 语句的作用是将相关返回值返回给此函数的调用者;

需要能够访问位于名称空间std中的cout;

std nameSpace;

using compile instruct

using namespace std;位置决定此的作用域,

一般情况下让程序访问std namespace的 methods:

让该函数可以使用指定的std名称空间元素,则在特定的函数中使用using std::cin >>

或是直接使用 std::cout <<"byRuiy"<<std::endl;

使用std名称空间中的元素,使用std::前缀,

类是用户定义的数据类型规范,详细描述了如何表示信息以及可对数据执行的操作

对象是根据类规范创建的实体,类似简单变量根据类型创建的实体;

为类定义的插入运算符(<<(将数据流插入到输出流),>>(从输入流中抽取信息));

数据存储在computer中,必记录的property

存储位置(memory.registr,disk...),存储 值 存储何种类型的信息 sizeof()   strlen();

检索一块能够存储整型的内存,将内存单元标记为变量名称,并将初始化的数值 复制到内存单元;

上面的事情料理完后,在后面你就可以使用变量来访问内存单元了,并使用内存单元中存储的数组,进行计算.

(变量被申明完后,内存地址随即确定,是内存程序自动协商搞定的,并记录在&variableName中)

1bytes(字节,指8位内存单元) = 8bits(位)

整型限制header files(climits,limits.h)

climits

INT_MAX,SHRT_MAX;

类型名称,变量名称使用sizeof();

C++编译过程中最先过 的是将代码传递给预处理器,

#define compile instruct 是C遗留下来的,C++有更好的创建符合常量(const char *env[]);

C++新增大括号初始化器,

变量声明并初始化

int var = 78;

int var{78};

int var = {78};

decimal //cout<<dec,
hexadecimal //cout<<hex;
octal //cout<<oct; namespace std中提供的控制符(endl,dec=decimal,oct=octal,hexadecimal),control symbol(控制输出数据流的进制,基数)
using compile instruct;

std::cout,std::endl,std::hex,std::oct;

程序的申明将特定的整型变量的类型告诉了C++编译器,编译器如何知道常量的类型的?

cout<<"Year = "<<1492<<"\n";

类定义了如何表示和控制数据;

类使用特定对象来使用成员函数

句点连接对象和成员函数

双引号字符用来分割字符串字面值,

应该像处理常规字符一样处理转义序列,即将他们作为字符常量时,应该用单引号或是双引号括起来

cout<<"\n";

cout<<'\n' charactrt constant

放在字符串中则就不用使用单引号了

cout<<"bu Ruiy \n";

universal character name;

符号常量,预处理器;

#define Ruiy 578;

const int byRuiy 58;

常量被初始化后其值就被固定了(编译器不允许修改该常量的值)

阅读程序时简单区分常量与变量(字符常量首字母  大写)

浮点缩放因子(10 100,1000)作用是移动小数点的位置;

exponent negative(浮点,小数点可以自由移动);

significant figure

 

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
1天前
|
存储 关系型数据库 MySQL
数据管理的艺术:PolarDB开源版详评与实战部署策略(一)
PolarDB-X是阿里巴巴自研的高性能云原生分布式数据库,基于共享存储的Shared-nothing架构,支持MySQL生态,具备金融级高可用、分布式水平扩展、HTAP混合负载等能力。它通过CN(计算节点)和DN(存储节点)实现计算与存储分离,保证数据强一致性,并支持全局二级索引和多主多写。PolarDB-X开源版提供更高程度的定制化和控制权,适合追求技术自主性和成本优化的开发者。部署方式包括RPM包、PXD工具和Kubernetes,其中PXD工具提供了一键部署的便利性。
46713 11
|
7天前
|
存储 NoSQL 数据库
为什么要用 Tair 来服务低延时场景 - 从购物车升级说起
“购物车升级”是今年双十一期间提升用户体验的关键项目,展示了大淘宝技术团队致力于通过技术突破消费者和商家体验的天花板。低延迟是这些挑战中的核心,内存数据库Tair因其高吞吐、大连接数、热点请求处理、异常流量管理和复杂计算逻辑优化等特点,在低延迟场景下表现出色。Tair使用内存/SCM混合存储和各种索引来提供低延迟服务,并通过无锁并发、水平扩展分区等技术应对高并发。此外,Tair还通过热点策略、流控和执行流程优化等手段确保在大促时的稳定性和性能。Tair在双十一期间支持了购物车、销量统计、卖家优惠券召回和互动场景等多种业务,展现其低延迟和高并发的能力。
76560 10
|
7天前
|
SQL 设计模式 Java
【软件工程底层逻辑系列】建模的底层逻辑
在本文中,给出建模的底层逻辑:用图形逻辑地表达现实业务的抽象,通过一些大家通识的技术案例讲述建模的过程。
74855 1
|
7天前
|
人工智能 安全 Devops
让研发规范管得住 - 我们为什么在流水线之上又做了研发流程?
研发规范的目标,是为了解决或降低出现软件危机的风险。但传统流水线受限于工具的定位,无法解决研发规范的落地问题,需要在更高的层面来解决。阿里云云效团队经过内部启发后推出的新产品:云效应用交付平台 AppStack 给出了解决方案,快来使用体验吧!
78340 3
|
5天前
|
关系型数据库 Serverless 分布式数据库
高峰无忧,探索PolarDB PG版Serverless的弹性魅力
在数字经济时代,数据库成为企业命脉,面对爆炸式增长的数据,企业面临管理挑战。云原生和Serverless技术革新数据库领域,PolarDB PG Serverless作为阿里云的云原生数据库解决方案,融合Serverless与PostgreSQL,实现自动弹性扩展,按需计费,降低运维成本。它通过计算与存储分离技术,提供高可用性、灾备策略和简化运维。PolarDB PG Serverless智能应变业务峰值,实时监控与调整资源,确保性能稳定。通过免费体验,用户可观察其弹性性能和价格力,感受技术优势。
|
15天前
|
SQL 消息中间件 Swift
【一文看懂】Havenask单机模式创建
本次分享内容为Havenask单机模式,由下面3个部分组成(Hape工具介绍、创建单机版Havenask、Hape问题排查),希望可以帮助大家更好了解和使用Havenask。
127055 0
|
14天前
|
存储 运维 监控
|
14天前
|
存储 SQL Apache
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
|
20天前
|
人工智能 弹性计算 算法
一文解读:阿里云AI基础设施的演进与挑战
对于如何更好地释放云上性能助力AIGC应用创新?“阿里云弹性计算为云上客户提供了ECS GPU DeepGPU增强工具包,帮助用户在云上高效地构建AI训练和AI推理基础设施,从而提高算力利用效率。”李鹏介绍到。目前,阿里云ECS DeepGPU已经帮助众多客户实现性能的大幅提升。其中,LLM微调训练场景下性能最高可提升80%,Stable Difussion推理场景下性能最高可提升60%。
124095 81
|
15天前
|
存储 弹性计算 Cloud Native
1 名工程师轻松管理 20 个工作流,创业企业用 Serverless 让数据处理流程提效
为应对挑战,语势科技采用云工作流CloudFlow和函数计算FC,实现数据处理流程的高效管理与弹性伸缩,提升整体研发效能。
64756 2