C++
uniooo
这个作者很懒,什么都没留下…
展开
-
C++指针的引用:在传参时需注意函数内是否要改变传入指针的指向,还是仅改变其指向内存块里的内容
在使用指针传参的时候,如果不使用引用,则会创建一个新的指针变量,该指针变量与原来的指针变量指向同一块内存地址,当改变函数内的指针的时候(而不是其指向的内容)则不会影响到原来的指针变量。如下一开始,ma指向NULL,调用func_a,则func_a中的a变量指向NULL,随后第五行改变了a的指向。但是不影响原来ma的指向。输出结果, a指向新地址,ma指向NULL。调用func_b,由于func_b中的a是对ma的一个引用,改变这里的a的指向,则ma的指向也会被影响,故而结果都指向新地址。 1 #in原创 2021-06-15 10:04:27 · 306 阅读 · 0 评论 -
malloc & free 多维数组
malloc & free 多维数组。多维数组需一维一维地malloc,同时也要反过来一维一维地free。 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 int **point; int n = 5; int m = 10; 7 point = (int**) malloc(sizeof(int*) * n); 8 fo原创 2021-06-15 09:41:47 · 599 阅读 · 0 评论 -
fscanf的一个小坑,需关注其返回值
fscanf在使用时需要注意其返回值,是否成功读取数据。否则可能没读成功,但是不报错,程序继续执行,用上一轮读取的数据继续操作。可能造成程序最终结果错误。 1 #include<stdio.h> 2 3 int main() 4 { 5 int a, b; 6 FILE* fin = fopen("in.txt", "r"); 7 for(int i=0; i< 2; ++i) { 8 int r = fscanf(fin, "%原创 2021-06-15 09:26:22 · 4454 阅读 · 0 评论 -
无符号数减法,注意溢出问题(移项后,不等式结果不一致)
很基本的知识,但是写代码的时候比较容易忽略,或者忘记变量是个无符号类型的变量,直接做减法,导致发生错误。当遇到 unsigned int、size_t 等类型的变量时,应尽量用 加法 代替 减法。例如判断a - b > c时,尽量使用 a > b + c 代替。...原创 2020-10-05 14:14:58 · 1489 阅读 · 0 评论 -
Google Style 谷歌C++风格检测工具,安装cpplint并集成到Visual Studio 2015
文章目录Google Style 谷歌C++风格检测工具,安装cpplint并集成到Visual Studio安装cpplint 的使用cpplint 与Visual Studio 关联添加cpplint快捷键Google Style 谷歌C++风格检测工具,安装cpplint并集成到Visual StudioGoogle C++ 风格指南:中文版cpplint是Google开发的一个C++...原创 2019-04-10 14:10:31 · 2423 阅读 · 0 评论 -
C++中重载构造函数的互相调用初始化成员变量的问题
文章目录C++中重载构造函数的互相调用初始化成员变量的问题不能直接互相调用的重载构造函数使用一个private的函数初始化成员变量使用带有默认参数的构造函数使用placement new运算符调用重载构造函数使用C++11的委托构造函数(在初始化列表位置调用)C++中重载构造函数的互相调用初始化成员变量的问题写一个类的时候,我们可能会希望有多重不同的初始化方式,此时就用到了重载构造函数。例如:...原创 2019-04-11 21:51:03 · 3254 阅读 · 3 评论 -
VS2015 无法执行添加/移除操作,因为代码元素“XXX”是只读的
VS2015,写C++,添加类成员函数的时候,在头文件声明部分点击提示灯泡,可以快速填写该函数的实现部分。有时候遇到此问题,提示:无法执行添加/移除操作,因为代码元素“XXX”是只读的。网上查找相关问题的解答,大多是VS2010、2008、2005时代的内容,提示删除ipch、sdf或者NCB文件。我删除了sdf文件,重启VS,无效。同时工程里并没有ipch或者NCB之类的文件。经过检查,工程...原创 2019-05-01 21:56:33 · 1662 阅读 · 0 评论 -
C++ set 容器在Visual Studio debug模式下报错,迭代器失效,引发了异常: 读取访问权限冲突。
迭代器iterator失效是在使用STL容器特别需要注意的一个问题。迭代器失效主要发生在迭代过程中对容器进行插入或者删除的改动过程中。这里主要记录一个我遇到的特殊的失效样例。#include <iostream>#include <set>using namespace std;void print_set(set<int> aa) { for ...原创 2019-09-21 21:15:14 · 1526 阅读 · 0 评论