做网站工资高么/北京seo优化分析

做网站工资高么,北京seo优化分析,dw做好的网页如何发布,营销方案效果评估范文学习交流加 个人qq: 1126137994个人微信: liu1126137994学习交流资源分享qq群: 962535112 今天开始系统性学习数据结构内容,之前也看过大话数据结构这本书,对大多数概念以及数据结构都有一定的了解,但是就是…

学习交流加

  • 个人qq:
    1126137994
  • 个人微信:
    liu1126137994
  • 学习交流资源分享qq群:
    962535112

今天开始系统性学习数据结构内容,之前也看过大话数据结构这本书,对大多数概念以及数据结构都有一定的了解,但是就是没有自己亲自去实现它的代码。
今天开始,用C++语言从0编写数据结构所有的代码实现,学习的编程工具为QT。也希望同道中人可以加q:1126137994.共同学习进步。
今天第一次先不讲数据结构的知识,先告诉大家为什么用C++语言来学习数据结构。

为什么用C++语言来学习数据结构呢?
首先我们来看一下数据结构的特点:
-专注于数据元素之间的关系
-专注于特定结构之上得算法

我们发现数据结构并不关注数据元素的具体类型。既然它不关注数据元素的具体类型,那么泛型编程,再适不过了。那么什么是泛型编程呢?

泛型编程的概念:不考虑具体数据类型的编程方式。
举个例子:
对于Swap函数,可以考虑下面的泛型写法

void Swap(T& a,T& b)
{T t = a;a = b;b = t;
}

Swap泛型写法中的T,不是一个具体的数据类型,而是泛指任意的数据类型。
学过C++语言的应该就会发现,C++中的模板技术,不就是泛型编程么?

C++中的函数模板:
-一种特殊的函数可用不同类型进行调用
-看起来和普通函数类似,区别是类型可被参数化。

函数模板的语法法则:
*template关键字用于声明开始进行泛型编程
*typename关键字用于声明泛指类型
泛型编程

类模板的语法法则:
*以相同的方式处理不同的类型
*在类声明前使用template关键字进行标识
*<typename T>用于说明类中使用的泛指类型T
例如:

template <typename T>
class Operator
{
public:T op(T a, T b);
};

如何使用模板?
1.函数模板的使用
-自动类型推倒调用
-具体类型显示调用
例如:

int a = 0;
int b = 1;
Swap(a, b);  //自动推倒数据类型
float c = 0.1;
float d = 0.2;
Swap<float>(c, d); //显示的调用具体的数据类型

2.类模板的使用
-只能显示指定具体的数据类型,无法自动推倒
-使用具体类型<type>定义对象
例如:

Operator<int> op1;
Operator<string> op2;int i = op1.op(1, 2);
string s = op2.op("lyy", "C++");

下面看一个完整的代码:

#include <iostream>using namespace std;template<typename T>  //开始函数的泛型编程
void Swap(T& a,T& b)
{T t = a;a = b;b = t;
}template <typename T>   //开始类的泛型编程
class Op
{
public:T process(T v){return v * v;}
};int main()
{int a = 1;int b = 2;Swap(a,b);     //函数的模板的调用,可以自动识别数据类型cout << "a=" << a << " " << "b=" << b << endl;double c = 0.01;double d = 0.02;Swap<double>(c,d);    //函数的模板的调用,显示指定数据类型cout << "c=" << c << " " << "d=" << d << endl;Op<int> opInt;    //类定义对象时,必须加<type>特定的类型定义Op<double> opDouble;   //类定义对象时,必须加<type>特定的类型定义cout << "5*5 = " << opInt.process(5) << endl;cout << "0.3*0.3 = " << opDouble.process(0.3) << endl;return 0;
}

在QT上运行的结果为:
这里写图片描述

总结:
-模板是泛型编程理论在C++的实现
-函数模板支持参数的自动推倒和显示指定
-类模板在使用时只能显示的指定类型
-类模板非常适用于编写数据结构相关的代码

想一起探讨以及获得各种学习资源加我(有我博客中写的代码的原稿):
qq:1126137994
微信:liu1126137994
可以共同交流关于嵌入式,操作系统,C++语言,C语言,数据结构等技术问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zookeeper 安装和使用

1.Windows安装和使用zookeeper 之前整理过一篇文章《zookeeper 分布式锁服务》&#xff0c;本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础&#xff0c;最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取&#xff0c;Zookeeper 的安装非常简单&#xf…

【移植Linux 3.4.2内核第一步】之简单修改

前一阵子已经将U-boot移植好了&#xff0c;从今天开始&#xff0c;我们开始移植linux内核。移植的内核为3.4.2&#xff0c;移植的开发板为&#xff1a;jz2440开发板。 想看之前移植U-boot的记录&#xff0c;可以查看我的博客专栏&#xff0c;点击链接&#xff1a;点击查看U-bo…

前端学习(77):css中常见margin塌陷问题之解决办法

塌陷问题 当两个盒子在垂直方向上设置margin值时&#xff0c;会出现一个有趣的塌陷现象。 ①垂直并列 首先设置两个DIV,并为其制定宽高 1 1 /*HTML部分*/2 <body>3 <div class"box1">box1</div>4 <div class"box2">box2…

HBase2.0 vs HBase1.x 延时比较

hbase2.0已经正式发布&#xff0c;对比之前1.x版本&#xff0c;2.0在读写链路上做了完善的优化&#xff0c;offheap、netty rpc等&#xff0c;这里做个小测试实验对比1.x和2.0在读写上的延时情况。本测试基于特定测试环境与软件版本得到的结果&#xff0c;仅供参考。 测试介绍 …

【数据结构学习之完全从零实现所有数据结构的代码编写之二】智能指针

今天我们依然暂时不讲解数据结构里面的内容&#xff0c;我们来复习一下昨天学的模板技术用于数据结构编程的思想&#xff0c;给出一个模板技术的实例&#xff1a;智能指针的应用。喜欢看我分享的加我q:1126137994 加我共同学习交流各种技术。 为什么会引入智能指针呢&#xff…

职责链模式(Chain of Responsibility)

重要概念 1. 使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一个对象处理它为止。 2.请求是沿着链条传递到有一个处理点对象负责处理这个请求为止。请求者无需…

mootools

$();// 选择ID为”body_wrap“的元素$(body_wrap);.getElement();// 选择ID为”body_wrap“的元素下面的第一个链接$(body_wrap).getElement(a); or #xxx or .xxx.getElements();// 选择ID为”body_wrap“的元素下面的所有链接$(body_wrap).getElements(a); $(body_wrap).getE…

图形化界面客户端连接phoenix操作hbase

下载客户端软件 DBeaver https://dbeaver.io/download/ 选择对应系统的版本&#xff0c;我这里选择解压版windows64位 创建连接 注意&#xff1a;URL模板就不要一般是默认 选择合适的版本&#xff08;跟你服务器的版本一致&#xff09;&#xff0c;下载jar包 点击测试或完成即…

【C++深度剖析教程12】数组操作符的重载

之前写的C学习记录忘记打编号了&#xff0c;从今天开始&#xff0c;所有内容&#xff0c;记录编号&#xff0c;方便以后的查阅复习。今天学习的是C中&#xff0c;数组操作符的重载。 上一篇博文写的是介绍C中的字符串类&#xff0c;我们知道&#xff0c;C标准库中通过string类…

前端学习(80):按类型划分标签(inline)

解决font-size中间有间隙 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compat…

HBase shell 命令介绍

HBase shell是HBase的一套命令行工具&#xff0c;类似传统数据中的sql概念&#xff0c;可以使用shell命令来查询HBase中数据的详细情况。安装完HBase之后&#xff0c;如果配置了HBase的环境变量&#xff0c;只要在shell中执行hbase shell就可以进入命令行界面&#xff0c;HBase…

【C++深度剖析教程13】函数对象的分析

今天来学习函数对象。什么是函数对象呢&#xff1f;下面我们以一个例子来引出函数对象的概念。 假设我们需要编写一个函数&#xff0c;实现下面这些功能&#xff1a; -函数可以获得斐波那契数列每一项的值 -每调用一次返回一个值 -函数可根据需要重复用使用 实现上面的几个…

IE图标消失 HTML文件图标变为未知图标的解决方法

有时候保存在硬盘里的HTM和HTML文件图标会突然变为未知的图标&#xff0c;而且它们往往还是与IE关联&#xff0c;也没有发现病毒。原因我怎么也弄不明白&#xff0c;但可以通过对注册表做些修改来恢复&#xff0c;详细步骤如下: 1.首先打开注册表编辑器&#xff0c;定位到HKEY_…

(SQuirreL SQL Client 客户端 )使用Apache Phoenix 实现 SQL 操作HBase

Apache Phoenix 相信大家并不陌生&#xff0c;它是HBase的SQL驱动&#xff0c;Phoenix 使得Hbase 支持通过JDBC的方式进行访问&#xff0c;并将你的SQL查询转换成Hbase的扫描和相应的动作。 兼容性&#xff1a; Phoenix 2.x - HBase 0.94.x Phoenix 3.x - HBase 0.94.x Phoen…

【C++深度剖析教程14】经典问题解析三之关于赋值的疑问

今天我们来总结一下&#xff0c;之前所学C中所遇到的一些经典的问题。 第一个疑问是&#xff1a; -什么时候需要重载赋值操作符 -编译器是否提供默认的赋值操作&#xff1f; 解答&#xff1a; *编译器为每个类默认重载了赋值操作符 *默认的赋值操作符仅完成了浅拷贝 *当…

微服务架构和SOA的区别

1. 2. 4 微服 务 架构 与 SOA 的 区别 1. 3. 1 微 服务 的 拆分 对于 一般 的 公司 而言&#xff0c; 实践 微 服务 有 非常 大的 技术 挑战&#xff0c; 所以 并不是 所有 的 公司 都 适合 将 单体 架构 拆分 成 微服 务 架构。 一般来说&#xff0c; 微服 务 架构 比较 适合 …

【C++深度剖析教程15】经典问题解析之关于string的疑问

今天来看一下在面试笔试中经常会出错的地方。 我们先来看一个代码&#xff1a; #include <iostream> #include <string>using namespace std;int main() {string s "12345";const char* p s.c_str();cout << p << endl; s.append(&qu…

前端学习(83):按显示进行分类

替换元素有自己的特性&#xff0c;虽然属于inline&#xff0c;但是能改变大小

【C++深度剖析教程16】智能指针的分析

今天我们来学习C中的一个独有的特性&#xff0c;智能指针。智能指针的作用非常的强大&#xff0c;它解决了C语言关于指针部分内存泄漏的BUG。那么在此处&#xff0c;内存泄漏指的是什么呢&#xff1f; -动态申请堆空间&#xff0c;用完后不归还 -C语言中没有垃圾回收机制 -指…