C++八股学习心得.7

1.在 CGI 中使用 Cookies

HTTP 协议是一种无状态的协议。但对于一个商业网站它需要在不同页面间保持会话信息。例如,一个用户在完成多个页面的步骤之后结束注册。但是,如何在所有网页中保持用户的会话信息。

在许多情况下,使用 cookies 是记忆和跟踪有关用户喜好、购买、佣金以及其他为追求更好的游客体验或网站统计所需信息的最有效的方法。

它是如何工作的

服务器以 cookie 的形式向访客的浏览器发送一些数据。如果浏览器接受了 cookie,则 cookie 会以纯文本记录的形式存储在访客的硬盘上。现在,当访客访问网站上的另一个页面时,会检索 cookie。一旦找到 cookie,服务器就知道存储了什么。

cookie 是一种纯文本的数据记录带有 5 个可变长度的字段

  • Expires : cookie 的过期日期。如果此字段留空,cookie 会在访客退出浏览器时过期。
  • Domain : 网站的域名
  • Path : 设置 cookie 的目录或网页的路径。如果您想从任意的目录或网页检索 cookie,此字段可以留空。
  • Secure : 如果此字段包含单词 "secure"那么 cookie 只能通过安全服务器进行检索。如果此字段留空,则不存在该限制。
  • Name=Value : cookie 以键值对的形式被设置和获取

文件上传实例

为了上传一个文件,HTML 表单必须把 enctype 属性设置为 multipart/form-data。带有文件类型的 input 标签会创建一个 "Browse" 按钮。

<html>

<body>

   <form enctype="multipart/form-data"

            action="/cgi-bin/cpp_uploadfile.cgi"

            method="post">

   <p>文件:<input type="file" name="userfile" /></p>

   <p><input type="submit" value="上传" /></p>

   </form>

</body>

</html>

 2.C++ STL

C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。

向量容器(一个 C++ 标准的模板)它与数组十分相似,唯一不同的是,向量在需要扩展大小的时候,会自动处理它自己的存储需求

  • push_back( ) 成员函数在向量的末尾插入值,如果有必要会扩展向量的大小。
  • size( ) 函数显示向量的大小。
  • begin( ) 函数返回一个指向向量开头的迭代器。
  • end( ) 函数返回一个指向向量末尾的迭代器。

3.C++ 标准库 

C++ 标准库可以分为两部分:

  • 标准函数库 这个库是由通用的、独立的、不属于任何类的函数组成的。函数库继承自 C 语言
  • 面向对象类库 这个库是类及其相关函数的集合

C++ 标准库包含了所有的 C 标准库,为了支持类型安全,做了一定的添加和修改。

标准函数库

标准函数库分为以下几类:

  • 输入/输出 I/O
  • 字符串和字符处理
  • 数学
  • 时间、日期和本地化
  • 动态分配
  • 其他
  • 宽字符函数

面向对象类库

标准的 C++ 面向对象类库定义了大量支持一些常见操作的类,比如输入/输出 I/O、字符串处理、数值处理。面向对象类库包含以下内容:

  • 标准的 C++ I/O 类
  • String 类
  • 数值类
  • STL 容器类
  • STL 算法
  • STL 函数对象
  • STL 迭代器
  • STL 分配器
  • 本地化库
  • 异常处理类
  • 杂项支持库

4.用简单的语言告诉我C++ 是什么 

C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性! 

5.C和C++的区别 

c++在c的基础上增添类C是一个结构化语言,它的重点在于算法和数据结构C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 

6.什么是面向对象(OOP) 

面向对象是一种对现实世界理解和抽象的方法、思想,通过将需求要素转化为对象进行问题处理的一种思想。

7.什么是多态

多态是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态 

8.设计模式懂嘛,简单举个例子

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结

比如单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点

适用于:当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时;当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

比如工厂模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

适用于:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

 9.STL库用过吗?常见的STL容器有哪些?算法用过哪几个

STL包括两部分内容:容器和算法。(重要的还有融合这二者的迭代器

容器,即存放数据的地方。比如array等。

在STL中,容器分为两类:序列式容器和关联式容器

序列式容器,其中的元素不一定有序,但都可以被排序。如:vector、list、deque、stack、queue、heap、priority_queue、slist

关联式容器,内部结构基本上是一颗平衡二叉树。所谓关联,指每个元素都有一个键值和一个实值,元素按照一定的规则存放。如:RB-tree、set、map、multiset、multimap、hashtable、hash_set、hash_map、hash_multiset、hash_multimap。

下面各选取一个作为说明。

vector:它是一个动态分配存储空间的容器区别于c++中的array,array分配的空间是静态的,分配之后不能被改变而vector会自动重分配(扩展)空间

set:其内部元素会根据元素的键值自动被排序。区别于map,它的键值就是实值,而map可以同时拥有不同的键值和实值。

算法,如排序,复制……以及个容器特定的算法。这点不用过多介绍,主要看下面迭代器的内容。

迭代器是STL的精髓,我们这样描述它:迭代器提供了一种方法,使它能够按照顺序访问某个容器所含的各个元素,但无需暴露该容器的内部结构。它将容器和算法分开,好让这二者独立设计。

10.数据结构会吗?项目开发过程中主要用到那些

数据结构中主要会用到数组,链表,树(较少),也会用到栈和队列的思想

总结:

http无状态协议,在不同页面保持会话信息,所以采用cookies,服务器以cookies形式发送数据,浏览器接收,将cookies存放硬盘里,另一个页面会检索cookies,是一个纯文本数据记录

C++STL标准模版库提供通用的模版类和函数,vector动态扩容,push_back函数末尾,size大小,begin开始,end结尾

C++标准库分为标准函数库(不属于任何类的函数)和面向对象类库(类和相关函数的集合)要知道这两个库都有什么

C++是一种面向对象,泛型编程和过程化编程,通常用来系统开发,有三大特性封装,继承,多态三大特性

C++在c基础上加入了类,c是结构化语言,注重算法和数据结构,看中如何通过一个过程来实现输入到输出的过程,c++是创建一个对象,得到对象的状态信息和实现过程控制

面向对象是一种将需求要素转化对象进行问题处理思想

多态相同操作或函数可用于多种类型的对象得到不同的结果

设计模式反复使用,代码设计经验的总结。单例模式一个类有一个实例,提供一个全局访问点,工厂模式,用于创建对象的接口,让子类决定实例化哪一个类。

STL容器(数据存放地方)和算法,容器包括关联式容器(平衡二叉树)都有一个键值和一个实值和序列式容器(不一定有序,但是可以排序)数组,链表,队列,栈,堆,优先级队列,vector可以动态分配,set可以自动排序,迭代器

数据结构中主要会用到数组,链表,树(较少),也会用到栈和队列的思想

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

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

相关文章

locust 快速入门--HttpUser与TaskSet

背景&#xff1a; locust 压测是以模拟一定用户数量完成指定操作实现的压测。 它的基础维度是用户数量&#xff08;HttpUser&#xff09;&#xff0c;压测时指定多少用户数&#xff0c;就会有相应的HttpUser实例。 用户的操作行为定义&#xff0c;是通过一个个task装饰的方法实…

探秘 JAVA 工厂模式:深度详解与实例分析

探秘 JAVA 工厂模式&#xff1a;深度详解与实例分析 前言: 欢迎阅读本篇博客&#xff0c;我们将深入研究 Java 中一种设计模式——工厂模式。工厂模式是一种创建型模式&#xff0c;它提供了创建对象的最佳方式之一&#xff0c;有助于将对象的创建与使用解耦。 1. 工厂模式简…

静态网页设计——旅游景点介绍(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a; https://www.bilibili.com/video/BV1f64y1N7uH/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术&#xff1a;HTMLCSSJS&#xff08;…

2024.1.7力扣每日一题——赎金信

2024.1.7 题目来源我的题解方法一 哈希表方法二 数组 题目来源 力扣每日一题&#xff1b;题序&#xff1a;383 我的题解 方法一 哈希表 使用哈希表记录ransomNote中所需字符的数量&#xff0c;然后遍历magazine并将哈希表中存在的对应的数量减一 时间复杂度&#xff1a;O(nm…

Code Runner使用外部控制台,运行结束后等待用户输入

问题描述 网上让程序运行结束暂停的方法大多数只有两种&#xff1a; 1.末尾加上system(“pause”) 2.start /k cmd 第一种方法每一个程序都需要在最后加上这条命令很烦&#xff1b; 第二章方法cmd窗口在程序运行结束后不会自动关闭&#xff0c;需要用户手动关闭 我想找到一种…

鸡尾酒效应通俗解释,举一个具体的例子。

问题描述&#xff1a;鸡尾酒效应通俗解释&#xff0c;举一个具体的例子。 问题解答&#xff1a; 鸡尾酒效应&#xff08;Cocktail Party Effect&#xff09;是指在嘈杂的环境中&#xff0c;人类大脑能够在众多声音中专注于一些特定声音并加以理解。这种现象显示了人类听觉系统…

PyTorch|构建自己的卷积神经网络--池化操作

在卷积神经网络中&#xff0c;一般在卷积层后&#xff0c;我们往往进行池化操作。实现池化操作很简单&#xff0c;pytorch中早已有相应的实现。 nn.MaxPool2d(kernel_size ,stride ) 这种池化叫做最大池化。 最大池化原理很简单&#xff0c;就是一个filter以一定的stride在原…

NACHI机器人虚拟示教器报I2101异常

前言 机器人示教器报&#xff1a;I2101 异常停止按钮或外部停止信号被输入 无法再示教模式下进行程序的运行&#xff01; 解决方法 结果 最后测试可以正常的运行程序

PHP文件代码加密系统,可批量全开源

代码文件加密系统 在程序运行时&#xff0c;实质上是在执行机器码&#xff0c;而虚拟机语言的基本概念是将程序加密到一定程度&#xff0c;也就是说&#xff0c;经过加密的PHP程序在执行时会被解密成opcode继续执行。 PHP在执行时会生成opcode&#xff0c;然后由Zend虚拟机继…

计算机网络(第8版)名词解释

1.ICMP 网际控制报文 允许主机或路由器报告差错情况和提供有关异常情况的报告 2.RIP路由信息协议 是一种分布式的&#xff0c;基于距离向量的路由选择协议 3.BGP 外部网关协议 是不同自治系统的路由器之间交换路由信息的协议 4.IGMP 网际管理协议 使用多播路由器知道多播…

Spring之单元测试

Spring提供了一个运行器&#xff0c;可以读取配置文件&#xff08;或注解&#xff09;来创建容器。 1 整合Junit5 1.1 引入依赖 <dependencies><!--spring context依赖--><!--当你引入Spring Context依赖之后&#xff0c;表示将Spring的基础依赖引入了-->…

JDBC-数据库连接池(druid)

一、背景 在介绍JDBC基本概念中&#xff0c;似乎Java程序每次与数据库交互都要通过驱动创建一个新的连接对象&#xff08;Connection&#xff09;&#xff0c;再由连接对象创建一个可执行SQL的Statement对象&#xff08;或PreparedStatement对象&#xff09;&#xff0c;操作完…

Postman实现压力测试

从事软件开发对于压力测试并不陌生,常见的一些压测软件有Apache JMeter LoadRunner Gatling Tsung 等,这些都是一些比较专业的测试软件,对于我的工作来说一般情况下用不到这么专业的测试,有时候需要对一些接口进行压力测试又不想再安装新软件,那么可以使用Postman来实现对…

Redis之集群选举原理分析

当slave发现自己的master变为FAIL状态时&#xff0c;便尝试进行Failover&#xff0c;以期成为新的master。由于挂掉的master可能会有多个slave&#xff0c;从而存在多个slave竞争成为master节点的过程&#xff0c; 其过程如下&#xff1a; slave发现自己的master变为FAIL。将自…

为什么圈子里面的很讨厌阿里巴巴出来的CTO

在杭州的互联网公司&#xff0c;有一个不争的事实&#xff0c;那就是独角兽公司的CTO几乎都是阿里背景的&#xff0c;且都是高P的&#xff0c;当然很少有高M的&#xff0c;高M的基本上都是自己开公司做CEO或者是做业务总裁了。 为什么会这个样子呢&#xff1f;当然还是由于阿里…

vue使用elementui 的 table且自定义某列表头时,添加的点击事件和自带的筛选功能有类似冒泡行为

element 自带的table 需求&#xff1a;在时间这一列的筛选按钮旁边添加一个批量修改按钮问题&#xff1a;如果不加排序这个属性&#xff0c;那么表格自带的筛选和新加的批量筛选点击事件会冲突&#xff08;冒泡事件&#xff09;解决方法&#xff1a;在该列添加sortable属性&…

吉林大学分布式计算系统题目解析

分布式计算题目解析 填空题 1、名字按结构可分为&#xff08;&#xff09;和&#xff08;&#xff09; &#xff08;绝对名字&#xff09;和&#xff08;相对名字&#xff09; 绝对名字&#xff1a;这是完全确定的路径名字,也就是从根目录开始的完整路径。例如在文件系统中…

学习笔记 | Kafka

一、概述 定义 1、Kafka传统定义&#xff1a;Kafka 是一个分布式的基于 发布/订阅模式 的消息队列&#xff08;Message Queue&#xff09; &#xff0c;主要应用与大数据实时处理领域。 2、发布/订阅&#xff1a;消息的发送者不会将消息直接发送给特定的订阅者&#xff0c;而…

一起学docker(六)| docker网络

Docker网络 不启动docker&#xff0c;网络情况&#xff1a; 启动docker&#xff0c;网络情况&#xff1a; 作用 容器间的互联和通信以及端口映射容器IP变动时候可以通过服务名直接网络通信而不受影响 常用命令 docker network --help 查看docker网络相关命令docker network…

【树莓派】在树莓派使用Python控制L9110电机转动的详细教程

文章目录 引言准备工作L9110电机知识储备特点电机的工作方式 实现结论 引言 树莓派是一款小巧、低成本且功能强大的单板计算机&#xff0c;它的广泛应用使得它成为了物联网和嵌入式系统开发的理想选择。在这篇博客中&#xff0c;我将向大家介绍如何使用树莓派和Python来控制L91…