复试上机指南-C++STL(一)

前言

最近在准备复试,博主的复试是C/C++,考虑到C++自带的STL操作的方便性,所以选择了用C++作为机试的语言,预计会做成一个系列,内容包括但不限于:

  1. STL:set、map、序列容器(vector、deque、list、array)、string类、容器适配器(stack、queue、priority_queue)
  2. 常用的数据结构:链表、数组、栈、队列、树、图等常用的数据结构,部分会在前面的STL中涉及,就不在这重复了。
  3. 常用算法:一是#incldue<alorithm>中包含的常用算法;二是关于贪心、动态规划等等。
  4. 排序和搜索:会写一些比较常见或者重要的排序冒泡、选择、快排,线性搜索、二分搜索。因为排序在算法中直接使用sort()即可,所以不会涉及太多,应对复试应该没问题。

本系列会按照是什么、为什么、常用的操作这三块来行文,希望大家看完可以提出宝贵的意见。

关于本文

第一篇主要介绍的是STL中的set、map、序列容器。

1 set

1.1 是什么

从现在开始我们将介绍set (集合)的使用。集合是一个简单直观的数学概念,即具有共同特征的事物的集合。除了没有单独的键,set 容器和 map 容器很相似。定义 set 的模板有 4 种,其中两种默认使用 less 来对元素排序,另外两种使用哈希值来保存元素。有序 set 的模板定义在 set 头文件中。既然是为了实战准备那么我就只介绍平时用的比较多的一种。

1.2 为什么

在机试中常用的是set<T>这种,容器保存 T 类型的对象,而且保存的对象是唯一的,其中保存的元素是有序的,标粗的字体就是使用它的理由,在去除字符串、整数中重复的元素时,可以采取直接插入到set里面,在插入的过程中就会自动去掉重复的元素,并且输出的原有元素是按照从小到大拍好的(字符串按照asc||码表排序的)。

1.3 常用的操作

1.3.1 初始化

在使用时需要加上头文件#include<set>//注意,STL头文件没有扩展名.h,代码示例如下:

#include<iostream>   
 #include<set>  
using namespace std;
int main()
{
    set<int>s;
    return 0;
}

可对int进行修改,charstring都可以,在初始化结束后就可以利用s进行操作了。

1.3.2 插入、遍历等常用操作
插入
 #include <iostream>
 #include <set>

 using namespace std;
 
 int main()
 {
     int a[] = {1,2,3};
     set<int> s;
     set<int>::iterator iter;
     s.insert(a,a+3);
     for(iter = s.begin() ; iter != s.end() ; ++iter)
     {
         cout<<*iter<<" &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

li_jeremy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值