4.25学习笔记 哈希表
1.找元素速度快,但可能发生哈希冲突
一般哈希表都是用来快速判断一个元素是否出现集合里。
哈希冲突的解决?
2.Multimap和map的操作类似,唯一区别multimap键值可重复
multiset
3.利用auto减少打字
我们都是用auto
这个关键字来代替一个具体变量的类型定义,让编译器自己去寻找和从它的初始化过程中来推演这个变量的类型。最著名的关于auto
的用法恐怕莫过于用它来躲开一堆长长的类型名,比如STL容器的iterator
,但是它也可以有其他用处:
std::vector<int> nums;for(auto iter = std::begin(nums); iter != std::end(nums); iter++) {auto& n = *iter;n = someFunction();}
在上边这个例子中,iter
就被推演为类型std::vector<int>::iterator
,然后n
的类型被推演成int&
。需要注意的是n
被显式地声明为引用类型,否则他就是int
类型了。
C++干货系列——谈谈在变量中使用auto - 知乎 (zhihu.com)
4.(fn+右键等于end键 )
光标定位到行首,再按shift+end 选中一行
home+shift+向下箭头,1,小窗,2,收起页面
选中多行:shift+上键或下键
5.优化统计字符串的是否是独立单词的优化思路
出现数组就加一,再出现数组就减一,如果数组最后不全为0,肯定就不咯
6.c++输入输出流?
(81条消息) 【C++】输入输出流(IO流)_c++输入输出流_山舟的博客-CSDN博客
标准输入输出流cin,cout
文件流fstream
void WriteFile()
{
//类似于C语言的用法
//ofstream ofs("write.txt");
//ofs.put('h');
//char msg[] = "ello world";
//int size = sizeof(msg);
//ofs.write(msg, size);
//可调可不调,因为ofs出了作用域后析构函数会自动调用
//ofs.close();
//C++的新用法
ofstream ofs("write.txt");
char c = 'h';
string str = "ello world";
ofs << c << str;//这样就如同文件流一样输出了helloworld
}
字符流sstream
是反的 输入是《
stringstream ss;
ss << a << " " << b;
输出:
#include <sstream>
#include <iostream>
using namespace std;
struct ServerInfo
{
string ip;
int port;
};
int main()
{
stringstream ss;
ServerInfo info = { "192.0.0.1",8081 };
ss << info.ip << " " << info.port;
//将s中的内容又写入newInfo中
//注意:不同项的内容必须以空格或换行结尾,这是C/C++都要求的
ServerInfo newInfo;
ss >> newInfo.ip >> newInfo.port;
return 0;
}
sstream的更多高级应用
(1).把其他类型转化为string类型
(2).实现选择性读取不同的数据类型
(82条消息) sstream用法_南方以北的博客-CSDN博客
7.cin,cout效率不如scanf等?加上即可提升
(81条消息) C++之sync_with_stdio(false)_赵大宝字的博客-CSDN博客
在代码里加上std::ios::sync_with_stdio(false) 这个语句后,cin(cout)速度就会变得和scanf(printf)一样快
eg
std::ios::sync_with_stdio(false);
for (int i = 0; i < 100000; i++){
cout << i << endl;
}
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
同时在默认的情况下cin绑定的是cout,每次执行<<操作符的时候都要调用flush,这样会增加IO负担。可以通过tie(0)来解除cin与cout的绑定,进一步加快执行效率。
但是用了sync_with_stdio(false)之后不能与printf和scanf同用,否则会出错,这就涉及到sync_with_stdio(false)的局限性。
因为本来这个函数存在就是可以使cout和printf不冲突
8.输入重定向是什么呢?
那么,什么是重定向呢?在默认情况下,cin 只能接收从键盘输入的数据,cout 也只能将数据输出到屏幕上。但通过重定向,cin 可以将指定文件作为输入源,即接收文件中早已准备好的数据,同样 cout 可以将原本要输出到屏幕上的数据转而写到指定文件中。
9.迭代器的使用?见之前stl学习的文章
课堂5,9日
10.题1 :输入n个元素组成的序列S,请找出一个乘积最大的连续子序列
深搜?
11. 枚举,先减少循环层数,再减少循环变量的范围(数字分析),(逆向思想)
典例
石头移动问题 (二分枚举)_石头距离问题_yi__cao的博客-CSDN博客
4.25学习笔记 哈希表相关推荐
- 阿龙的学习笔记---哈希表与C++11中unordered_map学习笔记
散列表(Hash table,也叫哈希表),是根据 关键码值(Key value) 而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函 ...
- 数据结构学习笔记 哈希表(一) 哈希表基础与哈希函数
------HR:The first question is what you do if you have a conflict with your manager ? ------You:Hash ...
- 【代码随想录】【LeetCode】学习笔记04-哈希表
前言 哈希法牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找. 如果遇到需要判断一个元素是否出现过的场景,应该第一时间想到哈希法! 四个常见哈希表类型对 ...
- HTML/CSS学习笔记02【表单标签】
w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...
- HALCON 20.11:深度学习笔记(7)---术语表
HALCON 20.11:深度学习笔记(7)---术语表 HALCON 20.11.0.0中,实现了深度学习方法.下面,我们将描述深度学习环境中使用的最重要的术语: anchor (锚) Anchor ...
- Oracle中用system存数据,【学习笔记】Oracle表空间 数据存放system表空间影响数据库性能...
天萃荷净 分享一篇,关于Oracle数据库system表空间研究,不能将用户数据存放在system表空间的原因 为什么不建议客户把业务数据存放到SYSTEM表空间中,一直想通过试验的数据来说明问题,今 ...
- 陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮
陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮:新建一个我的菜单按钮 设置对应的宏过程名称为 [我的菜单宏] 点击按钮弹窗信息,信息可自定义设置 详细代码如下: Sub 新建右键菜单()Dim 菜单 ...
- 编译原理学习笔记20——符号表
编译原理学习笔记20--符号表 20.1 符号表的组织与操作 20.2 符号表的内容 20.3 利用符号表分析名字的作用域 20.1 符号表的组织与操作 符号表 符号表的作用与组织 符号表的整理和查找 ...
- 在php中表单传值怎么用,PHP学习笔记 01 之表单传值
一.HTML传值/PHP接收方法 1.GET(地址栏+问号+数据信息) (1)方式一:表单Form: method = 'get' GET接收数据方式: $_GET['表单元素name对应的值] (2 ...
最新文章
- 优秀ASP.NET程序员修炼之路
- 自编码器深度分析+定制特征描述子构建初探
- EFI BIOS下的磁盘管理工具Diskpart,Efifmt与Efichk(转)
- 水滴石穿之页面遮罩层实现、向window.open()打开的窗口POST数据
- SSH远程链接:SCP远程拷贝文件与文件夹
- 在HTML中取得请求中的参数
- java世博会_世博会申请由xcode修改
- 二维码ZBar之ZBarReaderView
- windows获取CPU温度
- 【学习笔记】seckill-秒杀项目--(8)页面优化
- java 菱形_java空心菱形
- dell计算机的硬盘如何分区,戴尔电脑分盘怎么分区
- adb如何在linux下安装目录,Linux下Android ADB驱动安装详解
- mysql数据库报错1146_数据库错误代码1146 - 本地与在线
- 用SDK包开发K66FX18学习笔记(5)
- 计算机更新配置卡住了,win10更新设置卡死怎么办|win10更新设置卡死的完美解决方法...
- VUE MVVM实现
- 【Python】利用摸鱼的时间,我写了一个三国杀开盒模拟器...
- 单向链表的创建与遍历(先进先出和先进后出)
- 零基础数据分析师视频教程考证课1到3spss/R语言/Python3/CDA网课