C++学习笔记
LYJ_viviani
这个作者很懒,什么都没留下…
展开
-
实例分析逻辑移位和算数移位
下面讨论整数的移位问题,包括有符号整数和无符号整数的左移和右移,其他情况可作参考。概念:逻辑移位:逻辑左移:向左移位时将左边移出的高位丢弃,将右边空出的低位补0逻辑右移:向右移位时将右边移出的低位丢弃,将左边空出的高位补0算数移位:算数左移:向左移位时将左边移出的高位丢弃,将右边空出的低位补0算数右移:向右移位时将右边移出的低位丢弃,将左边空出的高位补0,最高位上保留符号位实例:...原创 2019-12-05 11:24:11 · 753 阅读 · 0 评论 -
strlen,strcpy,mencpy函数的实现
int strlen(const char *str){ assert(str != NULL); while((*str++) != '\0') len++; return len;}char *strcpy(char *dst,const char *src){ assert(dst != NULL && src != NULL); ch原创 2017-09-02 20:01:23 · 1125 阅读 · 0 评论 -
不区分字母大小写排序
英文字母从 A 到 Z 排列,不区分大小写, 如,输入: Type 输出: epTy#include<bits/stdc++.h>using namespace std;bool cmp(const char a,const char b) return tolower(a)<tolower(b);vector<char> s;stable_sort(s.begin(), s.en原创 2017-09-18 21:45:49 · 3693 阅读 · 0 评论 -
String类原型
class String { public: String(const char *str = NULL); //构造函数 String(const String &other); //拷贝构造函数 ~ String(void); //析构函数 String &原创 2017-06-11 21:08:47 · 1588 阅读 · 0 评论 -
【编程】大鱼吃小鱼
【编程】大鱼吃小鱼 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右。游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼。从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右)。问足够长的时间之后,能剩下多少条鱼?Input 第1行:1个数N,表示鱼的数量(1 <= N <= 100000)。 第2 - N + 1行:每行两个数A[i], B[i],中间用空格分隔,分别原创 2017-04-13 23:07:19 · 8230 阅读 · 0 评论 -
构造函数实例
#include <iostream>#include <string>using namespace std;class Complex{private: double real, imag;public: Complex(double r); Complex(double r, double i); Complex(Complex c1, Comple原创 2017-04-13 10:45:28 · 1885 阅读 · 0 评论 -
数组指针和指针数组实例辨析
#include <iostream>using namespace std;int main(){ int a[5] = { 1,3,5,7,9 }; int b[4][3] = { { 1,2,3 },{ 4,5,6 },{ 7,8,9 },{ 10,11,12 } }; int *pa = a; cout << &a << endl; cout <<原创 2017-03-14 16:10:58 · 1135 阅读 · 0 评论 -
C++知识点摘记
【1】结构体和数组的主要区别: 1、结构体可以在一个结构中声明不同的数据类型; 2、相同结构的结构体变量是可以相互赋值的,而数组不行 解析:数组是单一数据类型的数据集合,它本身不是数据类型,而结构体是一种数据类型,数组名是常量指针,不可以作为左值进行运算(赋值号左边必须是一个变量),所以数组之间不能通过数组名相互赋值。原创 2017-03-13 10:49:32 · 761 阅读 · 0 评论 -
求最近公共祖先和所有祖先
#include "btree.cpp" //二叉链的基本运算#include<iostream>using namespace std;bool allAncestor(BTNode *b, ElemType t)//求所有祖先节点{ if (b == NULL) return false; else if ((b->lchild != NULL && b->l原创 2017-03-28 10:19:51 · 1209 阅读 · 0 评论 -
return 0;和break; 的区别
#include <iostream>using namespace std;int main(){ int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int i = 0; i < 10; i++) { if (a[i] > 5) cout << "mistake" << endl; r原创 2017-03-17 18:09:47 · 2566 阅读 · 1 评论 -
C++中实现cin输入的结束
【问题】在 C++中如何实现在命令窗口中结束数据的输入?#include<iostream> using namespace std;int main(){ int sum = 0, value = 0; while (**cin >> value**) sum += value; cout << "sum is: " << sum << endl;原创 2016-08-17 11:39:23 · 8142 阅读 · 0 评论 -
VS配置OpenGL环境
将OpenGL库文件下载(http://download.csdn.net/detail/lyj_viviani/9554809)下来并解压,将得到5个文件(glut.dll, glut32.dll,glut.lib,glut32.lib,glut.h) (1)把解压得到的glut.h复制到x:\Program Files\Microsoft\Visual Studio10.0\VC\includ原创 2016-06-20 18:12:50 · 1701 阅读 · 0 评论 -
解决“错误 D8016 “/ZI”和“/Gy-”命令行选项不兼容 ”问题
VS2015调试中出现上述问题,我们需要手动改变/ZI命令行选项 或者 /Gy命令行选项, 进入“项目”—>“属性”—>“C/C++”(1)—>“常规”—>“调试信息格式”—>选择“程序数据库(/Zi)”或“无”或者 (2)—>“代码生成”—>“启用函数集链接”—>选择“是 (/Gy)”如果遇到其他的命令行选项不兼容,类似于上面到“C/C++”目录下的各个选项中修改。原创 2016-05-24 10:03:24 · 136175 阅读 · 37 评论 -
解决VS调试提示“无法启动程序,'...exe'.系统找不到指定文件。”的问题
这篇文章原来是我写在新浪博客上的,现贴过来,但图片就没办法了,只好给出链接,看全文请转至这里 http://control.blog.sina.com.cn/admin/article/article_edit.php?blog_id=9202d7740102wj5t图1 当VS调试提示上图所示的警告时,常用的方法是检查“项目”-“属性”-“配置属性”-“常规”-“输出原创 2016-07-11 11:20:57 · 60620 阅读 · 9 评论 -
关于int main( int argc, char* argv[] ) 中arg和argv参数的解析及调试
在示例程序中经常可以看到argc和argv这两个参数 ,在调试代码时遇到main函数为int main( int argc, char* argv[] ) 这种类型的往往会报错,或者是运行起来了但命令窗口一闪而过,没有出来结果。在网上关于这方面的资料有点乱,看浅墨大大一书发现其讲的确实很详细,抑制不住要与大家分享的冲动,现结合网上内容整理如下: 带形参的main函数,如 main( int arg原创 2016-07-10 22:47:31 · 27241 阅读 · 3 评论