c++学习笔记(3)

1.在C++中,当一个整数的绝对值超过了int所能表示的最大值(2147483647)时,使用int类型进行赋值操作会导致溢出。换句话说,如果将超出该范围的值赋给int类型的变量,则会产生未定义的结果。因此,在使用int类型时要特别小心不要出现溢出的情况。
  
2. 在C++中,long的取值范围为-2147483648到2147483647(即-2^31到2^31-1),如果超出这个范围,就会发生溢出。因此,当取出来的数大于2147483647或者小于-2147483648时,使用long会发生溢出。
  
3. C++中,当一个数的值超过long long所能表示的范围时,使用long long类型进行存储会引发溢出。
在C++标准中,long long类型的取值范围是-9223372036854775808到9223372036854775807(即-2^63到2^63-1)。如果一个数超出这个范围,就会发生溢出。
4.C++中的set是一种关联式容器,它包含唯一元素(即每个元素只能出现一次),并且元素按照一定的顺序进行排序。set的插入和删除操作的时间复杂度为对数级别,查找、访问和遍历的时间复杂度为平均线性级别。
set内部实现使用红黑树(自平衡二叉查找树)作为其数据结构。可以使用默认构造函数来创建一个空的set,或者使用初始化列表来指定元素的值。
set中的元素是按照一定的顺序进行排列的,默认情况下是按照升序排列。如果需要按照降序排列,可以自定义一个比较函数或者使用lambda表达式作为set的第三个参数。
5.C++中的map是一种关联式容器,它存储的是键值对(key-value pairs)。其中,键是唯一的,而值可以是任意类型的数据。
6.数组(Array)是一种数据结构,用于存储一系列相同类型的元素
数组的特点包括:
  1. 固定长度 :数组在创建时需要指定其长度,之后不能更改。这意味着数组的大小是固定的,不能随着元素的增减而变化。
  2. 元素类型相同 :数组中的所有元素必须是同一类型,这使得数组在处理同类型数据时非常高效。
  3. 内存连续分配 :数组的元素在内存中是连续存储的,这使得通过索引访问元素非常快速。
  4. 支持随机访问 :由于数组的元素是通过索引直接访问的,因此可以快速地访问任意位置的元素。
在编程中,数组是非常基础且重要的数据结构,几乎所有的编程语言都支持数组。例如,在C++中,数组可以通过指定大小来创建,如int myArray[5];,这将创建一个能够存储5个整数的数组。
  
7. void是C++中的一个关键字,用于声明一个函数没有返回值。在函数定义中,可以使用void来指定该函数不返回任何值。
  
8.sort()函数用于对数组或容器中的元素进行排序
C++标准库中的<algorithm>头文件提供了sort()函数,这是一个非常常用的通用排序函数,它可以对数组或容器中的元素进行排序。sort()函数的基本用法:
  1. 对数组排序 :如果有一个数组,可以使用 sort() 函数对其进行排序。例如,对于一个整数数组 int arr[] = {3, 1, 4, 1, 5, 9}; ,可以通过调用 sort(arr, arr + sizeof(arr) / sizeof(int)); 来对其进行排序。
  2. 对容器排序 :对于标准库容器(如 vector deque 等), sort() 函数同样适用。例如,对于一个 vector<int> 类型的容器 vec ,可以使用 sort(vec.begin(), vec.end()); 来对其进行排序。
  3. 自定义比较函数 sort() 函数还接受一个可选的比较函数作为参数,这允许用户根据特定的排序准则对元素进行排序。比较函数应该接受两个参数,并返回一个布尔值,指示第一个参数是否应该在排序后位于第二个参数之前。
9. getline 是 C++ 标准库中的一个函数,用于从输入流中读取一行文本。它的原型如下:
istream& getline (istream& is, string& str, char delim);
参数说明:
  • is:输入流对象,例如 cin 或文件输入流。
  • str:存储读取到的文本的字符串对象。
  • delim:可选参数,指定分隔符,默认为换行符('\n')。
使用示例:
#include <iostream>
#include <string>
int main() {
    std::string line;
    std::cout << "请输入一行文本:" << std::endl;
    std::getline(std::cin, line);
    std::cout << "你输入的文本是:" << line << std::endl;
    return 0;
}
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值