随笔分类 - C++
摘要:cin会忽略有效数据前的所有空格、换行符、Tab, cin.get不会 cin, cin.get 会将将结束符或者换行符残留在输入缓冲区中,cin.getline不会 1.cin简介 cin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入
阅读全文
摘要:对象所占用的存储空间存储:类成员变量、虚函数表指针(vfptr),类的成员函数存储在 代码区 看如下测试代码: class D { public: void printA() { cout<<"printA"<<endl; } virtual void printB() { cout<<"print
阅读全文
摘要:获取iterator的地址迭代器是个类,会将真实的数据地址保存在某个内部的成员变量中,并重载各种运算符(比如解引用运算符*)。 要取得数据地址,使用 &* 或者 std::addressof(*iterator) #include <iostream> #include <vector> using
阅读全文
摘要:参考链接:C语言中文网 http://c.biancheng.net/cpp/biancheng/view/2979.html 一、 使用参数初始化表并没有效率上的优势,仅仅是书写方便。 二、初始化 const 成员变量 参数初始化表还有一个很重要的作用,那就是初始化 const 成员变量。初始化
阅读全文
摘要:野指针产生的原因: 1.指针定义时未被初始化:指针在被定义的时候,如果程序不对其进行初始化的话,它会随机指向一个区域,因为任意指针变量(出了static修饰的指针)它的默认值都是随机的 2.指针被释放时没有置空:指针指向的内存空间在用free()和delete释放后,如果没有对其进行置空或者其他赋值
阅读全文
摘要:原子性 一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程打断。
阅读全文
摘要:#include <pthread.h> pthread_cond_t cond; pthread_mutex_t mutex_m; bool flag = false; void fun(){ pthread_mutex_lock(&mutex_m); while(flag == false){
阅读全文
摘要:std::mutex m_a; { std::unique_lock<std::mutex> lk(m_a); a++; } unique_lock<std::mutex> lk(m_a);对象在超出作用域时,会调用析构函数,析构函数会将对象持有的互斥锁解锁,所以即使不主动解锁,超出作用域后 lk(
阅读全文
摘要:vector<int>::iterator it; it = a.begin()+4;
阅读全文
摘要:本文转载自:Linux命令大全 https://man.linuxde.net/gcc gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C
阅读全文
摘要:#include <string>#include <iostream> using namespace std; int main() { string s; getline(cin,s); cout << s; return 0; }
阅读全文
摘要:scanf() 读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。 gets() 认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对 gets() 来说就是一个完整的字符串。 也就是说,gets()
阅读全文
摘要:函数原型 char *strchr(const char *str, int c) 参数 str-- 要被检索的 C 字符串。 c-- 在 str 中要搜索的字符。 功能 在参数str所指向的字符串中搜索第一次出现字符c(一个无符号字符)的位置。 返回值 返回一个指向该字符串中第一次出现的字符的指针
阅读全文
摘要:strspn(返回字符串中第一个不在指定字符串中出现的字符下标) 头文件 #include <string.h> 定义函数: size_t strspn (const char *s,const char * accept); 简单的说,若strspn()返回的数值为n,则代表字符串s 开头连续有n
阅读全文
摘要:函数说明 strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。 返回值:若参数s1和s2字符串相同则返回0,s1长度大于s2长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0的值. 函数说明:strncasecmp()用来比较参数s1和s2字符串前n个字符
阅读全文
摘要:转载自:https://www.jb51.net/article/71509.htm 头文件:#include <string.h> strpbrk()函数检索两个字符串中首个相同字符的位置,其原型为: char *strpbrk( char *s1, char *s2); 【参数说明】s1、s2要
阅读全文
摘要:转义字符意义ASCII码值(十进制) \o 空字符(NULL) 0 \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将当前位置移到下一行开头 010 \r 回车(CR) ,将当前位置移到本行开
阅读全文
摘要:从指针的层次上理解函数——函数的函数名实际上就是一个指针,函数名指向该函数的代码在内存中的首地址 对此,我们写如下代码做测试: int fun(int a) { return a; } int main() { cout << fun(22) << endl; cout << (*fun)(33)
阅读全文
摘要:转载自:https://jeremybai.github.io/blog/2014/09/10/size-t 之前在《内存拷贝的注意事项》一文中提到过size_t,可能许多人对这个类型不太熟悉没有用过或者根本不敢去用,最近看到一篇文章对这个类型讲的比较详细,便翻译过来让不熟悉的同学可以知道它产生的原
阅读全文
摘要:逻辑左移=算数左移,右边统一添0 逻辑右移,左边统一添0 算数右移,左边添加的数和符号有关,左侧添加符号位。即正数添0,负数添1。 如果负数要进行逻辑右移,可将其转换为unsigned类型。 左移运算符(<<) 左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是
阅读全文

浙公网安备 33010602011771号