-
C++11列表初始化 统一了初始化方法
所属栏目:[语言] 日期:2022-10-24 热度:3770
我们知道,在 C++98/03 中的对象初始化方法有很多种,请看下面的代码:
//初始化列表
int i_arr[3] = { 1, 2, 3 }; //普通数组
struct A
{
int x;
struct B
{[详细] -
C++11 tuple元组细说
所属栏目:[语言] 日期:2022-10-24 热度:7706
C++11 标准新引入了一种类模板,命名为 tuple(中文可直译为元组)。tuple 最大的特点是:实例化的对象可以存储任意数量、任意类型的数据。
tuple 的应用场景很广泛,例如当需要存储多个不同类型的元素时[详细] -
C++11支撑函数模板的默认模板参数
所属栏目:[语言] 日期:2022-10-24 热度:4888
在 C++98/03 标准中,类模板可以有默认的模板参数,如下:
template <typename T, typename U = int, U N = 0>
struct Foo
{
// ...
};
但是却不支持函数的默认模板参数:
[详细] -
Makefile中寻常的错误信息
所属栏目:[语言] 日期:2022-10-24 热度:9472
make 执行过程中所产生错误并不都是致命的,特别是在命令行之前存在 "-"、或者 make 使用 "-k" 选项执行时。make 执行过程的致命错误都带有前缀字符串 "***"。错误信息都有前缀,一种是执行程序名作为错误前缀([详细]
-
Makefile控制函数error与warning
所属栏目:[语言] 日期:2022-10-24 热度:2821
Makefile 中提供了两个控制 make 运行方式的函数。其作用是当 make 执行过程中检测到某些错误时为用户提供消息,并且可以控制 make 执行过程是否继续。这两个函数是 "error" 和 "warning",我们来详细的介绍一下[详细]
-
C++ STL set insert方案详解
所属栏目:[语言] 日期:2022-10-22 热度:3200
通过前面的学习,我们已经学会如何创建一个 set 容器。在此基础上,如果想向 set 容器中继续添加元素,可以借助 set 类模板提供的 insert() 方法。
为满足不同场景的需要,C++ 11 标准的 set 类模板中提[详细] -
C++ STL set emplace 和emplace_hint 办法详解
所属栏目:[语言] 日期:2022-10-22 热度:7318
要知道,set 类模板提供的所有成员方法中,能实现向指定 set 容器中添加新元素的,只有 3 个成员方法,分别为 insert()、emplace() 和 emplace_hint()。其中 insert() 成员方法的用法已在前面章节做了详细的讲解[详细]
-
C++ STL set删除数据 erase 和clear方式
所属栏目:[语言] 日期:2022-10-22 热度:456
如果想删除 set 容器存储的元素,可以选择用 erase() 或者 clear() 成员方法。
set 类模板中,erase() 方法有 3 种语法格式,分别如下:
//删除 set 容器中值为 val 的元素
size_type erase ([详细] -
C++ STL multiset容器说明
所属栏目:[语言] 日期:2022-10-22 热度:3445
前面章节中,对 set 容器做了详细的讲解。回忆一下,set 容器具有以下几个特性:
不再以键值对的方式存储数据,因为 set 容器专门用于存储键和值相等的键值对,因此该容器中真正存储的是各个键值对的值(va[详细] -
C++ STL无序容器 哈希容器 是啥
所属栏目:[语言] 日期:2022-10-22 热度:3762
继 map、multimap、set、multiset 关联式容器之后,从本节开始,再讲解一类“特殊”的关联式容器,它们常被称为“无序容器”、“哈希容器”或者“无序关联容器”。
[详细] -
C++ STL vector删除元素的几种方式 超级具体
所属栏目:[语言] 日期:2022-10-21 热度:1758
前面提到,无论是向现有 vector 容器中访问元素、添加元素还是插入元素,都只能借助 vector 模板类提供的成员函数,但删除 vector 容器的元素例外,完成此操作除了可以借助本身提供的成员函数,还可以借助一些全[详细]
-
C++ STL vector插入元素 insert 和emplace 详解
所属栏目:[语言] 日期:2022-10-21 热度:4055
vector容器提供了 insert() 和 emplace() 这 2 个成员函数,用来实现在容器指定位置处插入元素,本节将对它们的用法做详细的讲解。
另外,如果想实现在 vector 容器尾部添加元素,可阅读《vector添加元素》[详细] -
C++ STL vector添加元素 push_back 和emplace_back 详解
所属栏目:[语言] 日期:2022-10-21 热度:8918
要知道,向 vector 容器中添加元素的唯一方式就是使用它的成员函数,如果不调用成员函数,非成员函数既不能添加也不能删除元素。这意味着,vector 容器对象必须通过它所允许的函数去访问,迭代器显然不行。
[详细] -
C++ STL vector容器访问元素的几种方式
所属栏目:[语言] 日期:2022-10-21 热度:1127
学会如何创建并初始化 vector 容器之后,本节继续来学习如何获取(甚至修改)容器中存储的元素。
访问vector容器中单个元素
首先,vector 容器可以向普通数组那样访问存储的元素,甚至对指定下标处的元[详细] -
C++ STL vector容器迭代器用法详解
所属栏目:[语言] 日期:2022-10-21 热度:7198
在《STL array随机访问迭代器》一节中,详细介绍了 array 容器迭代器,vector 容器迭代器和前者有很多相同之处。比如,vector 容器的迭代器也是随机访问迭代器,并且 vector 模板类提供的操作迭代器的成员函数也[详细]
-
结构型模式概述 结构型模式的分类
所属栏目:[语言] 日期:2022-10-18 热度:0
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。
由于组合[详细] -
建造者模式 Bulider模式 详解
所属栏目:[语言] 日期:2022-10-18 热度:0
在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。例如,计算机是由 CPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组[详细]
-
代理模式 代理设计模式 详解
所属栏目:[语言] 日期:2022-10-18 热度:0
在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者[详细]
-
抽象工厂模式
所属栏目:[语言] 日期:2022-10-18 热度:0
前面介绍的工厂方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机、计算机软件学院只培养计算机软件专业的学生等。
同种类称为同等级,也就是说:[详细] -
创建型模式应用实验
所属栏目:[语言] 日期:2022-10-18 热度:0
创建型模式(Creational Pattern)的主要特点是将对象的创建与使用分离,根据对象的创建与组合方式的不同,创建型模式可分为单例(Singleton)模式、原型(Prototype)模式、工厂方法([详细]
-
Spring MVC重定向及转发
所属栏目:[语言] 日期:2022-10-18 热度:0
Spring MVC 请求方式分为转发、重定向 2 种,分别使用 forward 和 redirect 关键字在 controller 层进行处理。
重定向是将用户从当前处理请求定向到另一个视图(例如 JSP)或[详细] -
Spring MVC实行流程
所属栏目:[语言] 日期:2022-10-18 热度:0
在学习框架之前,首先来了解一下 Spring MVC 框架的整体请求流程和使用到的 API 类。
Spring MVC 涉及到的组件有 DispatcherServlet(前端控制器)、HandlerMapping(处理器[详细] -
Spring MVC传递数据
所属栏目:[语言] 日期:2022-10-18 热度:0
Spring MVC Controller 接收请求参数的方式有很多种,有的适合 get 请求方式,有的适合 post 请求方式,有的两者都适合。主要有以下几种方式:
通过实体 Bean 接收请求参数
[详细] -
Spring MVC @Controller和@RequestMapping解析
所属栏目:[语言] 日期:2022-10-18 热度:0
Spring 2.5 版本新增了 Spring MVC 注解功能,用于替换传统的基于 XML 的 Spring MVC 配置。
在《第一个Spring MVC应用》一节中创建了两个传统风格的控制器,它们是实现 Con[详细] -
工厂方法模式 详解版
所属栏目:[语言] 日期:2022-10-18 热度:0
在现实生活中社会分工越来越细,越来越专业化。各种产品有专门的工厂生产,彻底告别了自给自足的小农经济时代,这大大缩短了产品的生产周期,提高了生产效率。同样,在软件开发中能否做[详细]