- 举例子: int data[3][4] ={ {1,2,3,4} , {5,6,7,8} , {9,10,11,12} }; int total = sum(data,3); 请自己先尝试写出sum函数的原型 思考过后,请继续看下面详细分析: data 是一个数组名,该数组有3个元素,第一个元素本身又是一个数组,有4个int 值组成。 因此... 举例子: int data[3][4] ={ {1,2,3,4} , {5,6,7,8} , {9,10,11,12} }; int total = sum(data,3); 请自己先尝试写出sum函数的原型 思考过后,请继续看下面详细分析: data 是一个数组名,该数组有3个元素,第一个元素本身又是一个数组,有4个int 值组成。 因此...
- 目录 总体概念 隐式实例化: 显式实例化: 显示具体化: 详细理解 显示实例化 显示具体化 总体概念 隐式实例化: 在使用模板之前,编译器不生成模板的声明和定义实例。只有当使用模板时,编译器才根据模板定义生成相应类型的实例。 如:int i=0, j=1; swap(i, j); //编译器根据参数i,j的类型隐式地生成swap<int>... 目录 总体概念 隐式实例化: 显式实例化: 显示具体化: 详细理解 显示实例化 显示具体化 总体概念 隐式实例化: 在使用模板之前,编译器不生成模板的声明和定义实例。只有当使用模板时,编译器才根据模板定义生成相应类型的实例。 如:int i=0, j=1; swap(i, j); //编译器根据参数i,j的类型隐式地生成swap<int>...
- 目录 程序示例: 运行结果: 模板的局限性 程序示例: //twotemps.cpp -- 使用重载模板#include<iostream>template <typename T>void Swap(T &a, T &b); template <typename T>void Swap(T *a, T *b, int n); void Show(int a[]... 目录 程序示例: 运行结果: 模板的局限性 程序示例: //twotemps.cpp -- 使用重载模板#include<iostream>template <typename T>void Swap(T &a, T &b); template <typename T>void Swap(T *a, T *b, int n); void Show(int a[]...
- 目录 预备的基础知识 将C-风格字符串作为参数的函数 C-风格字符串与常规char数组之间的区别 统计某个字符串中含有字符个数的程序 预备的基础知识 C-风格字符串由一系列字符组成,以空值字符结尾('\0') 将字符串作为参数时意味着传递的是 地址,但可以使用const来禁止对 字符串参数进行修改 将C-风格字符串作为参数的函数 表... 目录 预备的基础知识 将C-风格字符串作为参数的函数 C-风格字符串与常规char数组之间的区别 统计某个字符串中含有字符个数的程序 预备的基础知识 C-风格字符串由一系列字符组成,以空值字符结尾('\0') 将字符串作为参数时意味着传递的是 地址,但可以使用const来禁止对 字符串参数进行修改 将C-风格字符串作为参数的函数 表...
- 文章目录 从DFA讲起游戏角色什么是状态模式状态模式的应用优点:缺点: 从DFA讲起 何为DFA?确定的有穷状态机。这里 看完上面那篇博客,就明白状态机还挺好用的。 那么现在,转场。 游戏角色 要开发一款游戏,咱负责的模块是处理游戏角色属性框架的搭建,目前已知角色有:坦克、法师、射手,他们都有属性:血量、物攻、物抗、法攻、法抗、角色... 文章目录 从DFA讲起游戏角色什么是状态模式状态模式的应用优点:缺点: 从DFA讲起 何为DFA?确定的有穷状态机。这里 看完上面那篇博客,就明白状态机还挺好用的。 那么现在,转场。 游戏角色 要开发一款游戏,咱负责的模块是处理游戏角色属性框架的搭建,目前已知角色有:坦克、法师、射手,他们都有属性:血量、物攻、物抗、法攻、法抗、角色...
- 本文暂不设目录,因为真不知道怎么设。 由于hiredis是个动态库,所以刚开始也不知道该从哪里下手,好在开发人员提供了一些测试案例,所以我就跟着测试案例的脚步来进行分析学习吧。 如果要快速上手,可以使用这一篇教程:学以致用 - C++操作redis 便无需在本篇耗费过多时间了,收藏一下,以后慢慢看 有需要完整示例,可以私信我。 #include <stdio... 本文暂不设目录,因为真不知道怎么设。 由于hiredis是个动态库,所以刚开始也不知道该从哪里下手,好在开发人员提供了一些测试案例,所以我就跟着测试案例的脚步来进行分析学习吧。 如果要快速上手,可以使用这一篇教程:学以致用 - C++操作redis 便无需在本篇耗费过多时间了,收藏一下,以后慢慢看 有需要完整示例,可以私信我。 #include <stdio...
- 运算符重载 运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。 C++将运算符重载扩展到用户定义的类型 两个数组相加 for (int i = 0 ; i < 20 , i++) evening[i] = sam[i] + janet[i]; 表示数组的类,重载+运算符 evening = sam + ja... 运算符重载 运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。 C++将运算符重载扩展到用户定义的类型 两个数组相加 for (int i = 0 ; i < 20 , i++) evening[i] = sam[i] + janet[i]; 表示数组的类,重载+运算符 evening = sam + ja...
- 目录 1. 自动存储持续性 2. 自动变量和栈 1. 自动存储持续性 在默认情况下,在函数中声明的函数参数和变量的储存持续性为自动,作用域为局部,没有链接性。也就是说,如果在main()中声明了一个名为texas的变量,并在函数oil()中也声明了一个名为texas变量,则创建了两个独立的变量——只有在定义它们的函数中才能使用它们。 另外,当程序开始执行这些变量... 目录 1. 自动存储持续性 2. 自动变量和栈 1. 自动存储持续性 在默认情况下,在函数中声明的函数参数和变量的储存持续性为自动,作用域为局部,没有链接性。也就是说,如果在main()中声明了一个名为texas的变量,并在函数oil()中也声明了一个名为texas变量,则创建了两个独立的变量——只有在定义它们的函数中才能使用它们。 另外,当程序开始执行这些变量...
- 文章目录 我要请假职责链模式小故事代码实现职责链的好处 我要请假 那天,咱有点事儿,想请个假。于是和科任老师说了一声,但是科任老师说他这个做不来主,上课离开五分钟还是可以的,但是超过这个时间就要像班主任请示。班主任又说,他的权限只到一早上,像我这样一下子请假一天的,他做不来主,需要向辅导员请示。 就这样绕了一圈,辅导员通过了。 那么这个层层上升的... 文章目录 我要请假职责链模式小故事代码实现职责链的好处 我要请假 那天,咱有点事儿,想请个假。于是和科任老师说了一声,但是科任老师说他这个做不来主,上课离开五分钟还是可以的,但是超过这个时间就要像班主任请示。班主任又说,他的权限只到一早上,像我这样一下子请假一天的,他做不来主,需要向辅导员请示。 就这样绕了一圈,辅导员通过了。 那么这个层层上升的...
- 目录 这个程序包含三部分: namesp.h namesp.cpp namessp.cpp 运行结果: 这个程序包含三部分: namesp.h namesp.cpp namessp.cpp namesp.h //namesp.h #include<string>// 创造名称空间namespace pers{ struct Person { std... 目录 这个程序包含三部分: namesp.h namesp.cpp namessp.cpp 运行结果: 这个程序包含三部分: namesp.h namesp.cpp namessp.cpp namesp.h //namesp.h #include<string>// 创造名称空间namespace pers{ struct Person { std...
- 指针传递数组方法: 将指向数组起始位置的指针做为一个参数,将数组长度作为第二个参数。(指针之处数组的位置和数据类型)即指定元素区间,可以传递两个指针来完成,一个指针标识 数组的开头,另一个 指针标识数组的尾部 本文重点关注第2种方法: // 使用数组区间的函数//注意,8个元素的话,数组是a[0]~a[7]。而为什么+8?这是为了让它指向最后元素的下一个位置#inclu... 指针传递数组方法: 将指向数组起始位置的指针做为一个参数,将数组长度作为第二个参数。(指针之处数组的位置和数据类型)即指定元素区间,可以传递两个指针来完成,一个指针标识 数组的开头,另一个 指针标识数组的尾部 本文重点关注第2种方法: // 使用数组区间的函数//注意,8个元素的话,数组是a[0]~a[7]。而为什么+8?这是为了让它指向最后元素的下一个位置#inclu...
- 目录 1. 使用引用参数的主要2个原因 2. 什么时候使用引用、使用指针、按值传递? 指导原则 2.1 使用传递的值而不作修改的函数 2.2 对于修改调用函数中数据的函数 3. 不一定完全按指导原则,实际情况更改 1. 使用引用参数的主要2个原因 程序员能够修改调用函数中的数据对象通过传递引用而不是整个数据对象,可以提高程序的运行速度(这个原因最重要,... 目录 1. 使用引用参数的主要2个原因 2. 什么时候使用引用、使用指针、按值传递? 指导原则 2.1 使用传递的值而不作修改的函数 2.2 对于修改调用函数中数据的函数 3. 不一定完全按指导原则,实际情况更改 1. 使用引用参数的主要2个原因 程序员能够修改调用函数中的数据对象通过传递引用而不是整个数据对象,可以提高程序的运行速度(这个原因最重要,...
- 目录 引用与指针的比较 引用规则: 举例: C++中函数的参数和返回值传递方式有三种:值传递、指针传递和引用传递 1.值传递 2.指针传递 3.引用传递 引用很像指针,为什么有指针了还要引用? 本内容隶属于第6章函数设计第6.6节,但是内容极其重要,所以单独学习总结 函数接口的两个要素是参数值和返回值。 C语言中,函数的参数和返回值得传递有两种:值传递... 目录 引用与指针的比较 引用规则: 举例: C++中函数的参数和返回值传递方式有三种:值传递、指针传递和引用传递 1.值传递 2.指针传递 3.引用传递 引用很像指针,为什么有指针了还要引用? 本内容隶属于第6章函数设计第6.6节,但是内容极其重要,所以单独学习总结 函数接口的两个要素是参数值和返回值。 C语言中,函数的参数和返回值得传递有两种:值传递...
- 看到这篇文章写得非常清晰明了,特意转载留存学习 第1章 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念。 进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线... 看到这篇文章写得非常清晰明了,特意转载留存学习 第1章 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念。 进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线...
- 假设你要编写一个返回字符串的函数。但是函数无法返回一个字符串,但是可以返回字符串的地址!这样效率更高! 函数接受两个参数:一个字符+一个数组 使用new创建一个长度与数组参数相等的字符串,然后将每个元素都初始化 为该字符,返回新字符串的指针 //返回C-风格字符串的函数#include <iostream>char * buildstr(char c, in... 假设你要编写一个返回字符串的函数。但是函数无法返回一个字符串,但是可以返回字符串的地址!这样效率更高! 函数接受两个参数:一个字符+一个数组 使用new创建一个长度与数组参数相等的字符串,然后将每个元素都初始化 为该字符,返回新字符串的指针 //返回C-风格字符串的函数#include <iostream>char * buildstr(char c, in...
上滑加载中
推荐直播
-
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day1)
2025/03/29 周六 09:00-18:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day2)
2025/03/30 周日 09:00-12:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
从AI基础到昇腾:大模型初探、DeepSeek解析与昇腾入门
2025/04/02 周三 16:00-17:30
不易 / 华为云学堂技术讲师
昇腾是华为研发的AI芯片,其具有哪些能力?我们如何基于其进行开发?本期直播将从AI以及大模型基础知识开始,介绍人工智能核心概念、昇腾AI基础软硬件平台以及昇腾专区,旨在为零基础或入门级学习者搭建从AI基础知识到昇腾技术的完整学习路径。
回顾中
热门标签