随笔分类 - C++灵活用法
类的访问修饰符
摘要:数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成员。类成员的访问限制是通过在类主体内部对各个区域标记 public、private、protected 来指定的。关键字 public、private、protected 称为访问修饰符。一个类可以有多个 public、prote
阅读全文
C++引用与指针
摘要:引用与指针之间的区别: 不存在空引用。引用必须连接到一块合法的内存。 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。 引用必须在创建时被初始化。指针可以在任何时间被初始化。 #include <iostream> using namespace std;
阅读全文
指针数组
摘要:顾名思义:用来装指针的数组 #include <iostream> using namespace std; int main() { /**********************指针数组************************/ int arr[3] = {10,100,200}; in
阅读全文
野指针
摘要:野指针:指向不确定地址的指针变量。(即没有初始化)使用野指针易因内存泄露出现段错误。而造成内存泄露的原因有两个:1.访问了没有权限的内存(平时我们正确使用指针的时候,系统应经将相应的内存分配给用户,但是如果指向没有分配的内存,系统会判定我们没有权限)2.访问了已经释放了的内存。 因为野指针主要是因为
阅读全文
lambda函数详解
摘要:lambda函数的作用就是可以编写内嵌的无名函数,而不必写成独立的函数; 结构:[]为开始,(参数){函数体} 例如: 1. 2.可以指明返回类型 在()后采用->,称为拖尾返回类型; 3.lambda函数可以在其封装的作用域内捕捉变量 4。当在外捕捉的变量为const类型的时候,我们想在lambd
阅读全文
find和find_if
摘要:find函数 是在一个迭代器范围内查找特定元素得函数,可将将他用于任意容器类型得元素。这个函数返回的是所找元素得引用,如果没有找到元素就会返回这个容器得尾迭代器。 结果: 21 7 55 81 67 44 18 10 82 87you want to look for num : 81find it
阅读全文
std::lexicographical_compare函数的使用
摘要:按照词典序比较前者是否小于后者。 当序列<first1, last1>按照字典序比较小于后者序列<first2, last2>,则返回true。否则,返回false。 所谓字典序比较,指的是两个序列分别从第一个开始一一按照字典序进行比较,如果相同位置的元素相同,则继续向后比较,直到相同位置出现不同的
阅读全文
tuple元组详解
摘要:这次要讲的内容是:c++11中的tuple(元组)。tuple看似简单,其实它是简约而不简单,可以说它是c++11中一个既简单又复杂的东东,关于它简单的一面是它很容易使用,复杂的一面是它内部隐藏了太多细节,要揭开它神秘的面纱时又比较困难。 tuple是一个固定大小的不同类型值的集合,是泛化的std:
阅读全文
numeric_limits<>函数
摘要:因为比较有用,所以自己试验并且翻译了一下,很可能有错误,希望发现错误的朋友能给我留言纠正,谢谢! 有部分没有翻译,因为还没弄清楚到底什么作用 numeric_limits是模板类。 需要注意的是返回值和参数,可以用强制转换。测试类的函数返回1代表“是”,0代表“否”。 例如cout << " The
阅读全文
初始化列表initializer_list
摘要:初始化列表定义在<initializer_list>,初始化列表简化了参数数量可变的函数的编写,初始化列表的所有的元素都应该是同一种数据类型 由于定义了列表中允许的类型,所以初始化列表是安全的; 结构是: makeSum({1,3,4,5,6,9}) : 28 但是在main函数内这么写就是错误的
阅读全文
C++类型转换
摘要:C++提供了四种类型转换,static_cast , dynamic_cast , const_cast , reinterpret_cast .而在C语言里有(),这种C风格的转换在C++里同样适用,但是强烈建议使用C++这四种转换。因为他们更安全,在语法上更优秀。 他是这四种里唯一可以舍弃常量特
阅读全文
const引用和constexpr
摘要:1.const指针 eg: (1) int const * p = nullptr; p = new int[10]; p[3] = 4; //error 我们发现第三行没法编译,这是因为第一行的const限制的时int,意思就是无法改变p所指的int类型的值。 (2) int * const p
阅读全文
引用详解
摘要:专业的C++代码会用到大量的引用,在C++中引用是变量的别名,所有对引用的修改都会改变被引用变量的值,可以将引用当作隐私指针,这个指针没有取变量地址和解除引用的麻烦(也可以将引用当作是原始变量的别名)。 一. 引用变量 1.引用变量在创建的时候必须初始化 值得注意的是:不能对创建引用直接“值传递”,
阅读全文