首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏数值分析与有限元编程

    CMake创建C++项目

    CMake是一个高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目,也就是说它最大的优势就是跨平台。 ●创建C++项目 1)在任意位置创建两个文件夹,其中一个文件夹名称为项目名称,里面有CMakeLists.txt和hello.cpp文件。另一个文件夹名称随意,里面不用添加任何东西。 ? ? ? ? 然后点finish,开始配置项目 ? 3)如有红色,则再点击一次configure,直到红色消失。紧接着点击generate和open project进入vs界面。 ? 4)右击项目名称hello,将其设为启动项。编译执行。成功! ? ? 5)如果选择的编译器没有IDE,则直接在CMake里面就完成所以的步骤了。

    2.4K20发布于 2019-06-05
  • 来自专栏学习之路

    【#3项目设计

    3. Dispatcher 模块存在的意义:区分消息类型,根据不同的类型,调用不同的业务处理函数进行消息处理。 3. Dispatcher IO 数据分发处理,逻辑与服务端一致 4. ,我们将整个项目的实现划分为三层来进⾏实现 抽象层:将底层的网络通信以及应用层通信协议以及请求响应进行抽象,使项目更具扩展性和灵活 性。 业务层:基于抽象的框架在上层实现项目所需功能 1. 抽象层 在当前的项目实现中: 网络通信部分 采用了第三方库 Muduo 库. 通信协议 使用了 LV格式 的通信协议解决粘包问题. 3. 业务层 业务层就是基于底层的通信框架,针对项目中具体的业务功能的实现了,比如Rpc请求的处理,发布订阅请求的处理以及服务注册与发现的处理等等。

    38000编辑于 2025-04-01
  • 来自专栏C++核心编程

    C++项目职工管理系统笔记-项目代码

    添加职工 vm.Add_Emp(); break; case 2: //显示职工 vm.Show_Emp(); break; case 3: *****" << endl; cout << "************* 2.显示职工信息 *************" << endl; cout << "************* 3. cout << "请选择该职工的岗位:" << endl; cout << "1、普通职工" << endl; cout << "2、经理" << endl; cout << "3、 (id, name, 1); break; case 2: //经理 worker = new Manager(id, name, 2); break; case 3: //老板 worker = new Boss(id, name, 3); break; default: break; } newSpace[this-

    70310编辑于 2022-09-27
  • 来自专栏莫浅子的学习笔记

    C++初级项目webserver项目流程介绍(2)

    一、引言 C++的webserver项目是自己在学完网络编程后根据网课的内容做的一个初级的网络编程项目。 这个项目的效果是可以在浏览器通过输入网络IP地址和端口,然后打开对应的文件目录 效果如下: 也可以打开文件夹后点击目录,打开到对应的文件夹中去。 二、代码开发流程 我这个项目主要用到的实现方式,是用epoll,epoll是可以实现网络服务器编程有下面几个优点 1. 3. 高可靠性:epoll使用边缘触发模式,只有在数据可读或可写时才会通知应用程序,避免了因为网络拥塞等原因导致的误报,提高了服务器的可靠性。 4. 3.fileName 读取位置+1,略过“/“ 不然就是下面这样 4.scandir函数 scandir 函数是用于扫描指定目录并返回目录中的文件列表的函数。

    1.1K10编辑于 2023-11-26
  • 来自专栏C++核心编程

    C++项目职工管理系统-项目分析

    职工管理系统 1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工、经理、老板。 2、创建项目 创建项目步骤如下: 创建新项目 添加文件 2.1 创建项目 打开vs后,点击创建新项目,创建新的C++项目 填写项目名称以及项目路径,点击确定 2.2 添加文件 右键源文件,进行添加文件操作 至此,项目已创建完毕 3、创建管理类 ​ 管理类负责的内容如下: 与用户的沟通菜单界面 对职工增删改查的操作 与文件的读写交互 3.1创建文件 在头文件和源文件的文件夹下分别创建workerManager.h *****" << endl; cout << "************* 2.显示职工信息 *************" << endl; cout << "************* 3. choice) { case 0: //退出系统 break; case 1: //添加职工 break; case 2: //显示职工 break; case 3:

    1.3K20编辑于 2022-09-23
  • 来自专栏学习成长指南

    C++学习~~string(3)

    因为这个函数得到的是第一个.后面的所有东西,这个时候我们想要得到的是zip就是最后的一个.后面的字符,这个时候我们应该使用的就是rfind函数,这个函数就可以得到这个字符串里面的最后一个.后面的后缀; (3) ,到这个com位置结束,我们的函数substr的第二个参数是子字符串的长度,就是i2-(i1+3); 对于这个最后的内容,我们从i2+1这个位置开始找就可以了,不用传递这个第二个参数,他这样就会自动找到这个字符串的末尾才会停止 所以我们这里使用的就是rfind函数,如果这个字符串有空格,我们就要使用这个size函数减去i+1;这样求的就是最后的一个单词的长度(因为这个i求的是空格的小标,i+1才是这个最后一个单词的起始位置的下标); 3. 函数只写两个参数就代表的是获取我们输入的所有,加上第三个参数,就获取到这个参数的位置截止;下面做一个简单的对比 (1) 使用cin无法获取空格后面的内容: (2)使用这个getline获取全部内容: (3) 添加第三个参数就可以到指定位置停止获取:我们这里是添加了#,这个时候读取时到#就会截止; (3)字符串的相加 我们下面提供两种思路解决这个问题: 我们首先说一下这个整体的思路,就是让这个指针从后向前,直到这两个字符串都遍历完成才停止

    15800编辑于 2025-02-24
  • 来自专栏Android点滴分享

    c++模版笔记(3)

    本篇介绍 本篇继续C++的模版介绍 std::invoke 以一种统一形式调用函数和传递参数: void foreach (Iter current, Iter end, Callable op, Args a:b; } 模版模版参数匹配 对于模版模版参数,c++ 17之后的版本也支持用一个参数包支持多个参数,不需要匹配每个参数。

    44910编辑于 2022-10-25
  • 来自专栏莫浅子的学习笔记

    C++初级项目-webserver(1)

    项目旨在使用C++语言,基于epoll模型实现一个简单的Web服务器。选择epoll模型是为了高效地处理大量并发连接。 2.项目概览 这个项目的目标是实现一个简单的Web服务器,可以处理基本的HTTP请求并发送相应的HTTP响应。 项目结构包括服务器初始化、Epoll模型的使用、事件处理循环、HTTP请求处理、文件发送、错误处理等关键模块。技术和工具方面使用了C++语言、epoll模型以及socket编程。 在浏览器上面的搜索栏输入http://192.168.44.3:9999/hanzi.c 192.168.44.3是Linux环境的本机IP地址,9999是端口号,hanzi.c是打开的文件名 3.Epoll 3

    85830编辑于 2023-11-19
  • 来自专栏全栈程序员必看

    C++学习笔记3

    C++ 中。函数能够重载。 仅仅要函数中形參的个数或类型不同,则同一个函数名可用于定义不同的函数。编译器将依据函数调用时的实參确定调用哪一个函数。 C++ 提供了两种特殊的函数:内联函数和成员函数。将函数指定为内联是建议编译器在调用点直接把函数代码展开。 内联函数避免了调用函数的代价。成员函数则是身为类成员的函数。 1. v2 is const v3 = incr(0); // error: literals arenot lvalues v3 = incr(v1 + v2) v3 is a non const objecttype int } 6. 指向重载函数的指针 C++ 语言同意使用函数指针指向重载的函数: extern void ff(vector<double>); extern void ff(unsigned int); /

    44110编辑于 2022-07-07
  • 来自专栏c++与qt学习

    c++文件操作3

    参数解释:内存指针buffer指向内存中一段存储空间,len是读写的字数 二进制文件写文件步骤: 1.包含头文件:#include< fstream > 2.创建流对象:ofstream ofs 3.

    49920发布于 2021-02-22
  • 来自专栏Java

    3 的幂(C++)

    3 的幂 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true;否则,返回 false 。 整数 n是 3的幂次方需满足:存在整数x使得n == 3x 示例 1: 输入:n = 27 输出:true 示例 2: 输入:n = 0 输出:false 示例 3: 输入:n = 9 输出:true 示例 4: 输入:n = 45 输出:false 提示: -231 <= n <= 231 - 1 我的思路: 我们不断地将 n 除以 3,直到 n=1。 如果此过程中 n 无法被 3 整除,就说明 n 不是 3 的幂。 n /= 3; return n == 1; } };

    15600编辑于 2025-01-21
  • 来自专栏就业 C++ 综合学习

    C++】飞机大战项目记录

    飞机大战设计报告 源代码与图片参考自《你好编程》 1 项目框架分析 根据飞机大战的游戏特性,首先可以确定的是游戏的基本玩法和规则。 对于本软件项目,游戏的核心机制是使用鼠标控制一架飞机在屏幕上移动,同时飞机会自动发射子弹来击败敌机。我们将通过Easyx来实现该项目! 2 开始打造项目 有了大致的游戏设计思路,现在我们可以来逐步实现飞机大战的各个模块。 2.1 图片素材准备 一个好的项目离不开美观的图案,所以这里我准备了一下图片(放在项目代码的路径下): 子弹(对应图片和图片掩码) 敌机有三种,都有对应正常飞行状态的图片,以及爆炸销毁的图片组, 飞机大战项目中,精灵对象可以被用来作为基类,敌机和飞机都会继承这个基类。

    1.6K11编辑于 2024-04-21
  • 来自专栏C++核心编程

    C++项目贪吃蛇游戏笔记-项目代码

    SetBackColor();//第一个选项设置背景色以表示当前选中 std::cout << "简单模式" ; SetCursorPosition(27, 24); SetColor(3) "简单模式" ; SetCursorPosition(27, 24);//将已选中项取消我背景色 SetColor(3) case 1: speed = 135; break; case 2: speed = 100; break; case 3: init_map = new Map(); init_map->PrintInitmap(); delete init_map; /*绘制侧边栏*/ SetColor(3) ::cout << "简单模式" ; break; case 2: std::cout << "普通模式" ; break; case 3:

    85730编辑于 2022-09-26
  • 来自专栏c++与qt学习

    项目知识盲区3

    项目知识盲区3 Spring Boot 一个接口多个实现类如何注入 @Mapper 与 @MapperScan 的区别 Spring @Autowired和构造函数的顺序 MySQL之You can't 3、还可以使用 @Primary 在指定实现类上标记。

    63720编辑于 2021-12-07
  • 来自专栏清羽飞扬

    CloudflareVercel项目推荐(3)

    项目介绍 内容分享 pastebin-ui 部署方式:Cloudflare Worker 引用站外地址,不保证站点的可用性和安全性 pastebin-ui github.com@willow-god 该项目基于原项目 它弥补了第一个项目在文件大小限制上的短板,支持更大文件的传输,同时还提供了更加完善的权限管理功能和直观美观的界面设计。如果你已经开通了 R2,强烈建议尝试该项目! 部署该项目并不复杂。 ,项目界面直观美观,用户体验良好。 以下是项目的实际预览效果: 部署该项目非常简单,无需技术背景即可完成。 具体介绍请见下面的项目

    1.1K10编辑于 2025-01-14
  • 来自专栏学习成长指南

    C++类和对象(3

    我们可以调用不同的函数,如果只是进行的读取,我们可以调用上面的函数,这样的话我们是没有办法对数据进行修改的;如果想要对数据进行修改,我们就可以调用下面的函数,这样面对不同的情况,调用不同的函数,效率更高; 3. 但是实际上我们使用的时候却不会报错,这个就是因为我们的运算符有一个默认的函数,我们可以直接获取某个对象的地址,不需要进行运算符的重载; 4.流插入&&流提取的运算符重载 (1)流插入运算符和流提取运算符是C+ 里面引入的两个秘密武器,他解决了c语言里面的printf和scanf的局限性问题; (2)如果我们想要打印cout<<d1这个对象,显然是无法实现的,但是我们可以对流插入和流提取这两个运算符进行重载; (3

    7900编辑于 2025-02-24
  • C++之类与对象(3

    3. C++规定自定义类型对象进行拷贝行为必须调用拷贝构造,所以这里自定义类型传值传参和传值返回都会调用拷贝构造完成。 4. 若未显式定义拷贝构造,编译器会生成自动生成拷贝构造函数。 C++规定类类型对象使用运算符时,必须转换成调用对应运算符重载,若没有对应的运算符重载,则会编译报错。 C++规定,后置++重载时,增加一个int形参,跟前置++构成函数重载,⽅便区分。 3. ; // 比较 d1 和 d3 if (d1 == d3) { cout << "d1 is equal to d3" << endl; } else

    17910编辑于 2025-12-19
  • 来自专栏C++

    C++——类和对象(3

    如果你没有给缺省值,对于没 有显示在初始化列表初始化的内置类型成员是否初始化取决于编译器,C++并没有规定。 类型转换C++支持内置类型隐式类型转换为类类型对象,需要有相关内置类型为参数的构造函数。构造函数前面加explicit就不再支持隐式类型转换。类类型的对象之间也可以隐式转换,需要相应的构造函数支持。 // 中间产生的临时变量具有常性,要加const//int* pi = &i;//float f = (float)pi; //errreturn 0;}(2)内置类型转换为类类型对象:// <2> C+ 3);st1.Push(a3);st1.Push(3); // 3能够通过构造函数转换为一个A的对象(编译器自动生成),这个对象是临时对象,然后这个对象会传给形参string s1("xxxxx");st1 如何优化C++标准并没有严格规定,各个编译器会根据情况自行处理。当前主流的相对新⼀点的编译器对于连续⼀个表达式步骤中的连续拷贝会进行合并优化,有些更新更"激进"的编译器还会进行跨行跨表达式的合并优化。

    21310编辑于 2025-10-21
  • 来自专栏MasiMaro 的技术博文

    C++ 调用Python3

    Python 提供了 C++ 库,使得开发者能很方便地从 C++ 程序中调用 Python 模块。 Python函数的定义解析返回值 初始化 在调用Python模块时需要首先包含Python.h头文件,这个头文件一般在安装的Python目录中的 include文件中,所在VS中首先需要将这个路径加入到项目中 blog.csdn.net/Chris_zhangrx/article/details/78947526 还有一点要注意,下载的Python环境必须的与目标程序的类型相同,比如你在VS 中新建一个Win32项目 这里需要注意一个问题就是Python3废除了在2中的普通的字符串,它将所有字符串都当做Unicode了,所以在调用3的时候需要将所有字符串转化为Unicode的形式而不是像之前那样转化为String。 ,可以直接使用 PyObject* args = Py_BuildValue(4, 3); 这种方式来创建元组 解析元组 Python 函数返回的是元组,在C++中需要进行对应的解析,我们可以使用 PyTuple_GetItem

    2.6K50发布于 2018-08-31
  • 来自专栏C/C++、数据结构、算法

    C++:类与对象(3

    C++:类与对象(2)-CSDN博客 去重载operator<<,然后发现没办法将operator<<重载成成员函数。因为cout的输出流对象和隐含的this指针在抢占第一个参数的位置。 3、注意内部类可以直接访问外部类中的static成员,不需要外部类的对象/类名。 3、对象传值返回优化 在func3中创建了一个变量,在拷贝一个临时变量返回,这个过程优化成直接构造。 传返回值拷贝构造了一次,又拷贝给aa1拷贝构造了一次,最后都被优化成直接构造。 经过1之后,在人的头脑中已经对洗衣机有了一个清醒的认识,只不过此时计算机还不清楚,想要让计算机识别人想象中的洗衣机,就需要人通过某种面相对象的语言(比如:C++、Java、Python等)将洗衣机用类来进行描述 ,并输入到计算机中 3.

    28710编辑于 2024-02-28
领券