IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++基础(C++Primer学习) -> 正文阅读

[C++知识库]C++基础(C++Primer学习)

C++基础(一)

1、字面值常量
字面值常量就是形如“42”,“1”等显而易见的值,每一个字面值常量都对应一种数据类型,比如字符型,整形,浮点型等等。
对于整形字面值,我们可以写作十进制数、十六进制数或者八进制数,定义方式如下:

int a = 10; //十进制
int a = 010; //八进制
int a =0x10; //十六进制

对于字面值的类型,还可以通过添加前缀或者后缀来改变其默认的类型。
2、C++中的复合类型
复合类型是指基于其他类型定义的类型,这里主要介绍----引用和指针
引用为对象起了另外一个名字,引用类型引用另外一种类型。

int i = 0;
int& ip = i;

创建引用时,必须初始化引用。引用的不同在于并非将数据复制一份,而是与原数据绑定,在引用上进行操作就等于在原数据上操作。
指针可以存储原数据的地址,同样的,对指针进行解引用操作,同样也等于对原始数据进行操作

int i = 0;
int& ip = i;
int* p = &i;
ip = 2;
cout << i << endl;
*p = 20;
cout << i;

通过引用将 i变为2,在通过指针解引用将i变为20。
指针可以作为布尔值进行判定,任何非空的指针都会被作为Ture。
特殊的指针----void* :void* 是一种特殊的指针,同样存放地址但是·我们不清楚其地址中存放的数据类型。
指向指针的指针,指针可以分为多级通过*的数量来区分指针级别。
3、auto类型说明符
auto类型说明符允许我们不定义变量类型,由系统自行推断数据的类型。

auto i = 0;
int& ip = i;
auto* p = &i;
ip = 2;
cout <<i << endl;
*p = 20;
cout << i;

修改刚才的程序。
decltype类型指示符
decltype指示符的的作用是选择并返回操作数的数据类型。在此过程中,编译器分析表达式并得到它的类型,不计算表达式的值
4、命名空间的using声明
命名空间包含了其中的成员,因此系统使用时才能识别其作用,标准库的名字空间为std。其中就包含cin和cout,如果不写就会报错。

using namespace std;
std::cin >> a;

两种方式,第一种只要写出后面就都不用再写了,第二种只针对某一函数。
5、标准库类型string
对于字符串或者数组,不使用string类的话就必须初始化其长度,这是明显不合适的。使用string可以输入自定义长度的字符串,其中也可以包含数字。但是对于一个string类对象,中间输入不能包含空格,系统读取到空格就会停止读入。若定义两个或者以上,那么空格刚好可以作为不同类对象的分界。

string s1, s2;
cin >> s1 >> s2;
cout << s1 << endl << s2;

使用for循环来查看一个字符串中的标点个数。其中的ispunct函数用来统计string对象中标点符号的个数。

string s("hello world!");
decltype(s.size()) punct_cnt = 0;
for (auto c : s)
{
	if (ispunct(c))
	{
		++punct_cnt;
	}
}
cout << punct_cnt << " punctuation characters in" << s << endl;

使用toupper函数来将string类的字符全部变为大写

for (auto& c : s)
{
	c = toupper(c);
}
cout << s << endl;

访问string类中的某一位置元素,与数组类似,采用[下标]方式

s[0] //第一个元素

6、标准库类型 vector
标准库类型vector表示对象的集合,其中所有对象的类型都相同。集合中的每个对象都有一个与之对应的索引来用于访问对象。因为vector中容纳着其他对象,所以它也被称为容器,是一个类模板(C++中既有类模板也有函数模板)。
模板本身不是类或函数,相反可以将模板看作是编译器生成类或者函数的一份说明。编译器根据模板创建类或者函数地过程称为实例化

vector<int> ivec; // ivec保存int类型的对象
vector<Sales_item>  Sales_vec;  //保存Sale_item类型的对象
vector<vector<string>> file;  //向量的元素是vector对象,
//有点难理解,因为vector不是类型而是模板,所以file里面包含的是该模板创建的对象  

vector初始化的不同方式,常用的包含两种,一种是{}方式,一种时()方式,两种方式产生的结果是完全不同的;

vector<int> v1(10);    //v1有十个元素,并且由int类型默认初始化为0
vector<int> v2{10};    //v2有一个元素,值为10

vector<int> v3(10, 1);   //v3有十个元素,每个元素都等于1
vector<int> v4{10, 1};    //v4有两个元素

向vector对象中添加元素,使用push_back可以将一个元素作为vector对象的尾元素压入其中:

vector<int> aj;
for (int a = 0; a < 100; a++)
{
	aj.push_back(a);
}        

读取vector中的某一位置元素,还是[下标]的方式。
其他的一些vector操作:

empty();  //不含元素返回真值
size();    //返回元素个数
push_back;  //提到了
aj[n];     //返回第n个位置上的索引
a1 == a2 ;  // 元素数量与对于位置的元素值完全相同成立
。。。。。
                                

注:访问成员元素时,可以使用下标索引,但是添加元素则不能使用下标方式,但是修改某一位置的元素值,可以使用下标方式

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 17:31:50  更:2021-12-01 17:31:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:04:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码