关于C++的翻书回顾

为什么那么多自学C/C++的人后来都放弃了? 目前信息化产业发展势头很好,互联网就成为了很多普通人想要涉及的行业,因为相比于传统行业,互联网行业涨薪幅度大,机会也多,所以就会有大批的人想要转行来学习C/C++。 目前来讲市场上需要的C/C++工程师非常多,而且按照现在的势头,以后会需要更多的编程开发人员,理由是以后每个人公司都会有自己的网站,有自己的开发部,对于用户体验看的非常重要。所以程序员就会很吃香。 随着时间的推移,企业对于软件开发者的要求也在不断提高,互联网公司注重效率,所以不会培养新人,所以想要从事软件开发,就要从开始靠我们自己学到技 阅读详情

C++的翻书回顾

自己不知不觉已经学习代码有两年多了,经常借鉴网上各路大神的代码并学习,这次也自己发一下自己最近的关于C++的总结。希望大家多指正。

转载请注明出处:http://blog.youkuaiyun.com/code_while/article/details/78633004

1.在C++中的判断中,0表示false,非0(不论正负)表示true

2.n>>=1;//n的二进制码右移一位,相当于除以2

3.abs()和fabs()的对比。头文件都是<math.h>。abs()是对整数取绝对值,返回值是整数;fabs()是对浮点数取绝对值,返回值是浮点数。

4.整数int(-2147483648~2147483647)长度不足时,可以用long long int型(9223372036854775807~-9223372036854775808)

5.根据空格拆分,将字符串按空格拆分为int型变量。

#include<iostream>
#include<sstream>
using namespace std;
int main()
{
    istringstream istr("123 56.7");
    cout<<istr.str()<<endl;
    int a;
    istr>>a;
    cout<<"int a="<<a<<endl;
    float b;
    istr>>b;
    cout<<"float b="<<b<<endl;
    return 0;
}
输出结果:
    123 56.7
    int a=123
    float b=56.7

6.关于stringstream类

stringstream更像一个缓存区,可以用来缓存各种类型的一个不用固定大小的容器,可以用来进行各种数据类型转换。
但在多次使用同一个缓冲的时候,要注意释放空间。
stringstream ss;
string str;
int k=99;
ss<<k;
ss>>str;
cout<<str<<endl;    //显示99
//str=123;
//ss<<str;
//ss>>k;
//cout<<k<<endl;    //不确定显示什么。因为ss缓存区仍被占用,需要先释放缓存区中的内容才可以正确的操作。

//释放ss缓存区中保存的数据
ss.clear();    // Set error state flags (public member function )
//ss.str("");    // Get/set content (public member function )
str=123;
ss<<str;
ss>>k;
cout<<k<<endl;    //显示123

7.string类型的加法

string a,b;
a=a+b;    //此处a+b产生了一个新的string对象e,然后e的值再赋给a,效率低,容易产生错误
a+=b;     //此处引用了b对象的值,然后直接和a相加再赋给a

//多个字符串相加时
a=a+b+c+d;//由于每次相加都会产生新的内存,容易出现错误
//用append()追加函数,可以避免上述问题
a.append(b).append(c).append(d);//参数表中的参数为字符串类型(&string)或(*char)
a.append(a,3,7)//取字符串a中位置3为起点,长度为7的字符串

8.其他C++小点

#include<iostream>
#include<cmath>
using namespace std;
//静态生存期的对象的举例
//在命名空间作用域中声明的对象都是具有静态生存期的,如果在函数内部的局部作用域中,则需要加static
int a = 100;//形如,static int a=100;
//内联函数举例
//内联函数定义为一些功能简单、规模小,使用频繁的函数
//与一般函数不同在于不是编译后调用时动态链接,而是在编译时将函数体嵌入调用处
//类中的简单功能的函数,为隐式的声明的内联函数,若加上inline,则为显示的声明为内联函数
inline int getFun()
{
    return a;
}
//函数重载举例
//函数名一致,但形参的类型或者数量不一样
int getFun(int b)
{
    return a / b;
}
//常引用做形参举例
//常对象必须进行初始化,且不能被更新
//常对象只能调用它的常成员函数,而不能调用他的其他成员函数
//无论是否是通过常对象调用常成员函数,在常成员函数调用期间,目的对象统一被视为常对象
//因此常成员函数不能更新亩的对象的数据成员,也不能针对目的对象调用该类中没有用const修改的成员函数
//常数据成员只能通过构造函数的初始化形参列表来获得初值,其他任何函数不能对该成员赋值
class Point
{
public:
    Point(int x = 0, int y = 0) :x(x), y(y){}
    //友元函数(类),使得相应的友元函数(类)可以访问类中被保护的数据成员
    friend float dist(const Point&p1, const Point&p2);
    friend Point operator+(const Point&p1,const Point&p2);
    friend ostream&operator<<(ostream&out, const Point&p);
private:
    int x, y;
};
float dist(const Point&p1, const Point&p2)
{
    double x = p1.x - p2.x;
    double y = p1.y - p2.y;
    return static_cast<float>(sqrt(x*x + y*y));
}
//重载函数——运算符重载
//其中,类属关系运算符“.”、成员指针运算符“.*”、作用域分辨符“::”、三目运算符“?:”不能被重载
//返回类型 operator 运算符(形参表)
//{
//        函数体;
//}
Point operator+(const Point &p1, const Point &p2)
{
    return Point(p1.x + p2.x, p1.y + p2.y);
}
ostream&operator<<(ostream&out, const Point&p)
{
    out << "(" << p.x << "," << p.y << ")";
    return out;
}
int main()
{
    //枚举类型举例
    enum weekday { Mon, Tue, Wed, Thu, Fri, Sat, Sun };
    //声明类型的别名
    typedef int natural, intbl;
    cout << "枚举类型的举例:" << endl;
    for (natural i = Mon; i <= Sun; i++)
    {
        cout << i << endl;
    }
    //异或计算(^)
    intbl a = 1, b = 2;
    a = a^b;//1和2进行异或计算,即0001异或0010,得到答案为0011,即为3
    cout << endl << "异或计算的举例:" << endl << a << endl;
    cout << endl << "内联函数的举例:" << endl << getFun() << endl;
    cout << endl << "重载函数的举例:" << endl << getFun(b) << endl;
    const Point myp1(1, 1), myp2(4, 5);
    cout << endl << "友元函数和常对象引用的举例:" << dist(myp1, myp2) << endl;
    cout << endl << "运算符重载的举例:" << myp1 + myp2 << endl;
    return 0;
}
C++ Primer Plus习题实践指南:从环境搭建到项目实战 C++作为一门核心的系统编程语言,其学习过程往往伴随着从理论理解到动手实践的挑战。理解变量、函数、类等基础概念是第一步,但真正掌握C++的关键在于通过实践将知识内化,这涉及到内存管理、多态、模板等高级特性的实际运用。对于学习者而言,配置一个高效的开发环境是首要任务,例如使用GCC或MSVC编译器,并搭配Visual Studio Code等现代编辑器进行代码编写与调试。通过系统地完成教材习题和运行示例代码,学习者能够跨越从“看懂”到“会写”的鸿沟,尤其对于指针、动态内存、STL等难点,结合“错题本”和分阶段 阅读详情

相关推荐

C++内联函数深度解析:从原理到性能优化实战

在C++性能优化中,函数调用开销是影响程序效率的关键因素之一。其原理在于每次调用都涉及上下文保存、跳转和恢复等操作,累积起来可能成为性能瓶颈。为了消除这种开销,C++引入了内联函数机制,它允许编译器在编译时将函数代码直接插入调用点,从而避免函数调用的成本。这项技术的核心价值在于实现“零开销抽象”,在保持代码模块化的同时追求极致性能。在实际应用场景中,内联函数特别适用于体积小、调用频繁的访问函数(如getter/setter)以及工具函数。值得注意的是,现代编译器具备强大的自动内联优化能力,而`inline`

weixin_30664615的博客 529

Qt/C++开源作品19-通用数据库翻页查询

一、前言 在Qt与数据库结合编程的过程中,记录一多,基本上都需要用到翻页查看记录,翻页有个好处就是可以减轻显示数据的表格的压力,不需要一次性将数据库表的记录全部显示,也基本上没有谁在一页上需要一次性显示所有记录,搜索引擎搜索出来的结果也基本上都是翻页显示的,那么问题来了,有没有一种通用的办法可以只需要传入表名和查询条件自动翻页呢,答案是肯定的,Qt对数据库操作的封装也是相当完美的,显示也是如此,为此特意封装成了一个类,直接用就行。 主要功能: 自动按照设定的每页多少行数据分页 只需要传入表名/字段集合/每

Qt/C++视频监控/推流/物联网/大屏系统/自定义控件/UI定制/输入法 2489

C/C++变量初始化与字符串操作:从内存模型到面试实战

变量初始化是编程语言中的基础概念,它确保程序在创建变量时赋予其确定的初始值,从而避免未定义行为。其原理在于程序运行时内存的分配与初始化机制,不同存储类型的变量(如全局、静态、局部变量)具有不同的默认初始化行为。掌握正确的初始化方法对于提升代码的健壮性、安全性及可维护性具有重要技术价值,能有效防止程序崩溃、数据污染及安全漏洞。在应用场景上,尤其在涉及内存直接操作的C/C++开发、嵌入式系统及高性能计算中,初始化是保障程序稳定运行的关键。本文将聚焦于**C/C++变量初始化**这一核心,并深入剖析**字符串变量

weixin_31188927的博客 249

MFC中实现ListControl翻页功能

一。写代码前的准备: 功能如下:       1.创造工程 testDlg,在对话框头文件中定义,四个公有变量        int pageNo; //页数编号 int pageSize; // 每页显示条数 int intStart; // 开始记录 int intEnd; // 结束记录 int max_page; // 记录最大页数    2.在控件上添加一个列表框控...

xueluowutong的博客 1920

OenGL 翻书效果

OenGL C++ 翻书效果,通过按键控制书的翻页,有立体感 纹理贴图技术

可翻页列表控件

集成翻页功能的table控件,适合显示大量数据 插入10万条数据大概耗时1秒

RTTI,C++类型转换操作符

body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px ...

dfuw13072的博客 230

OpenGL 翻书的效果

OpenGL编写,实现翻书的效果,本人原创,有意请联系我

用按键控制翻页c语言,C++可视化角色按键移动控制的实现

1.新建项目新建一个空项目,并添加一个源文件(.cpp)记住.cpp文件所在的位置2.新建一个窗口,并添加背景图片将要使用的图片,拷贝到项目所在文件夹与.cpp文件处于同一文件夹#include//用于标准输入输出#include//用于图形的函数库int main(){initgraph(1440, 768);//创建一个窗口,大小设定为背景大小,以免图片拉伸变形IMAGE background...

weixin_42300927的博客 1361

open CV技术实现的投影翻书程序

使用OPEN CV技术开发的投影翻书程序,C++ vs2008工程,能够通过摄像头识别手势,然后投影机实现翻书过程,经过测试可用,多用于智能展厅控制系统。需要自己安装摄像头驱动,自带MAC地址等硬件检测程序,如果不需要可以删除。

Python实战:用Realsense D435和睿尔曼机械臂完成手眼标定的5个关键步骤

本文详细介绍了使用Python、Realsense D435深度相机与睿尔曼机械臂进行手眼标定的完整实战流程。文章将过程拆解为环境搭建、数据采集、核心计算、结果验证和精度优化五个关键步骤,重点剖析了数据采集的黄金法则、常见错误排查以及如何将标定结果集成到视觉抓取程序中,旨在帮助开发者实现毫米级精度的视觉引导机器人系统。

weixin_29103191的博客 322

翻书机 DFS(C/C++)

题目描述 也许你也有过这样的经历: 小圆:(埋头读书) 妈妈:(瞟一眼走开了) 小圆:(开始摸鱼) 过了几分钟…… 妈妈:怎么还在看这一页!是不是又在发呆了! 或者:怎么看张插图看这么久!是不是又在发呆了! 为了避免这样的尴尬场面,小圆发明了一款“翻书机”,机器能够实现自动翻页的功能,在每一页,机器都可以向前翻,也可以向后翻页;同时小圆为了增强趣味性,想要自己给出书的页面,以及每一页对应的每一次所翻的页数——现在,你就是这台机器,你和小圆一样喜欢摸鱼,因此,请你计算出对于小圆给出的数据,从A页翻到B页所需的

Z_H86的博客 257

银河麒麟v10(x86_64)升级openssh实操成功

本文详细介绍了在银河麒麟V10系统上将OpenSSH从8.2p1升级至9.9p2版本的全过程。主要内容包括:系统环境确认、安装telnet备用连接、备份配置、卸载旧版本、安装新版本、服务配置与验证等关键步骤。特别强调了安全注意事项,如必须安装telnet作为备用连接、重要配置备份等。升级后提供了安全加固建议,包括修改SSH端口、禁用root登录等。文章还包含详细的故障排查方法和恢复方案,确保升级过程安全可靠。通过本教程,用户可以顺利完成OpenSSH版本升级,提升系统安全性。

淘淘小窝 1095

C++ primer学习之const限定符(1)

学习C++ primer也有一段时间了,一直对const这个关键字比较模糊,一忘记就想翻书,这次正好借着这个机会,对这个关键字做一个总结,之间还穿插了指针的知识,方便后面的回顾。

zyhmz的博客 345

【硬核指南/MI50 32G/Ubuntu】从零部署大模型:MI50显卡Ubuntu系统驱动安装与避坑全记录

本文详细记录了在Ubuntu系统上为AMD MI50显卡安装驱动并部署大模型的完整流程,包括硬件兼容性检查、BIOS关键设置、系统安装优化、ROCm驱动安装及常见问题解决方案。特别针对MI50显卡在X99平台上的特殊配置需求提供了实用技巧,帮助用户避免常见陷阱,提升大模型训练效率。

weixin_42520909的博客 813

零代码做游戏:AI辅助开发HTML5网页小游戏从创意到发布全流程

在软件开发领域,自然语言编程正成为一种新兴的人机协作方式,而AI辅助开发则是其最典型的落地形态。它让开发者无需精通语法,只需用清晰的语言描述游戏规则与交互逻辑,AI便能自动生成可运行的代码。这种模式大幅降低了编程门槛,尤其适合快速验证创意、制作原型。对于HTML5网页游戏而言,借助AI生成单个HTML文件,配合在线运行环境,即可在浏览器中直接试玩、迭代与分享。无论是产品经理验证玩法、运营人员制作互动小游戏,还是教育者设计课堂闯关,都能通过自然语言描述需求,让AI完成代码实现与报错修复。本文完整记录了一个“接

weixin_31497453的博客 339

有关今天读书的一些思考

今天在读C++的时候,读着读着遇到了

优快云_LYY的专栏 687

arcgis select by attributes一次选多个_视频:如何基于ArcGIS与GeoDa求莫兰指数和绘制莫兰散点图?...

莫兰指数是全域莫兰指数(Global Moran's I)的简称,是澳大利亚统计学家帕特里克·阿尔弗雷德·皮尔斯·莫兰(Patrick Alfred Pierce Moran),在1950年提出的。详细介绍,如下:莫兰指数取值范围在-1.0至1.0之间。当Moran's I >0时,表示空间正相关性,其值越大,空间相关性越明显;当Moran's I <0时,表示空间负相关性...

weixin_39948247的博客 1760

前端进阶——学习感悟

由于周六大物地考试,几乎一周的时间都花在了复习上,而对于JS的学习也搁置到一边。这周除了考试就是数据结构所布置的C++的作业,本以为可以很快的做完,但是毕竟快2个月没有亲自实践过C++,知识的遗忘和操作的生疏使我发现完成作业变得有些困难,只得翻书加之练习进行熟练吧。这也对我学习前端提了一个醒,不仅要学习新知识,旧的知识也得在学习新知识时加以运用,这样才不会造成学了后边忘了前边的状况。

Victormomo的博客 531

Oracle迁移至华为GaussDB SQL语法和存储过程转换

在将Oracle数据库迁移至GaussDB时,SQL语法和存储过程的转换是确保应用程序正常运行和数据完整性的关键环节。由于两者在数据类型、函数、过程语言等方面存在差异,必须系统化地进行转换和测试。正则表达式脚本:批量替换常见的语法差异。SQL解析工具:解析SQL脚本,生成GaussDB兼容的语法。代码审查工具:自动检查转换后的代码,确保语法和逻辑正确。将Oracle迁移至GaussDB涉及到SQL语法和存储过程的全面转换。通过系统化的转换步骤、使用合适的工具并结合手动调整,可以确保迁移过程的顺利进行。

weixin_38428874的博客 2399

“华为杯”研究生数学建模竞赛2020年-【华为杯】E题:能见度估计与预测(附获奖论文及python代码实现)

因此,题目要求借助机场的 AMOS 观测数据中的气压、温度、湿度、风速等气象因子,达到 100% 时,空气中的水汽便会凝结成细微的水滴悬浮于空中,使地面水平的能见度下。传统的仪器探测法成本高,覆盖范围小,而基于视频的能见度检测能弥补仪器测量的不足之处,但是预测精度不高,需要进一步改。象条件,空气质量的影响,其中较为关键的影响因子是雾和霾。性过强,激光能见度仪的检测方法更为可信,但是激光能见度仪覆盖的检测范围小,安装。覆盖的交通视频路况数据间接计算得到能见度数值的方法,此方法成本较低,覆盖范围广。

getusushu的博客 2285

写在优快云关闭的日子

    优快云因为某些原因被关闭了十几天,在这段日子里发生了很多事情。最重大的当然是中国队在29届奥运会上大奏凯歌,其次就是我为了解决编程方面的问题,频繁的翻书。如果优快云没有被关闭,遇到问题我多半会查找到这个地方来。当然了,用google的网页快照也可以解决不少问题。不过,我还是选择将我的《C++编程思想》多翻翻,熟悉一下也好。看了网上很多人评论自己的了优快云依赖症。很庆幸,自己还没有得这

bengold1979的专栏 802

Gromacs 模拟昆虫 P450 解毒酶与农药结合完整指南,仅供参考!

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1243

C/C++、Python语言学习总结及对Java平台的理解

C/C++、Python语言学习总结及对Java平台的理解C/C++语言Python语言我对Java平台的理解 C/C++语言 刚进入大学学习的第一门程序设计语言就是C语言。因为培养方案的要求,我们用的是一本C++的教材,前面讲了C语言的结构化编程部分,后面是面向对象编程。得益于高中学过VB编程,所以我对计算机语言并不陌生。 我的老师讲课十分认真,每周我们都会在作业网站上完成作业,包括判断题、选择...

weixin_43865957的博客 352

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大众点评面试题

前天去参加了大众点评招聘的面试,感觉不太好,可能要悲剧了,回来总结一下,试着回想了几个题目,在此一起学习呀。 1. 两个已排好序的数组(假设X[n],Y[n]),如何求得合并后的中间数 当时二话没说直接给出直接简单的解决方法:遍历一遍,总的比较次数是n+m-1次 给出更高效的算法: 假设中间数为X[k],则X数组中比X[k]小的数有k个,而合并后比X[k]小的数应该是n个,所以Y数组中比X

宁 静 以 致 远 9393

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

我的创作纪念日——《惊变256天》

最近,博主收到了 优快云 发来的系统消息,这才惊觉,自上次第128天创作纪念日之后,竟又悄然走过了 128 天。站在 256 天这个颇具意义的里程碑前回望,博主在2023 年 8 月 29 日那天创作第一篇博客的情景依然历历在目。

序属秋秋秋的博客 2407

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

下一篇: MFC int 和CString的相互转化实例
CCCAAAAFFFFF
博客等级 码龄10年 5粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值