一、String相关

1、带空格的字符串输入
string a;
getline(cin,a);
2、字串的截取
 string s = "sfsa";string a = s.substr(0, 3);string b = s.substr();string c = s.substr(2, 3);cout << a << endl;cout << b << endl;cout << c << endl;

输出

sfs
sfsa
sa
3、字符的查找
 string s = "sfsa";string a = s.substr(0, 3);string b = s.substr();string c = s.substr(2, 3);int t1, t2, t3;t1 = s.find('s');t2 = s.find('f');t3 = s.find('a');int t4 = s.find('b');cout << t1 << endl;cout << t2 << endl;cout << t3 << endl;cout << t4 << endl;

输出

0
1
3
-1

find函数也适用于vector等很多数据结构

二、结构体相关

1、结构体中符号重载
struct Point{int x,y;Point (int x=0,int y=0):x(x),y(y){}
};Point operator +(const Point &A,const Point &B){return Point(A.x+B.x,A.y+B.y);
}ostream& operator <<(ostream& out, const Point& p)
{out << "(" << p.x << ',' << p.y << ')';return out;
}int main()
{Point a,b(1,2);a.x=2;cout<<a+b<<endl;return 0;
}
struct stru
{string x;int y;bool operator <(const stru& te) const { return te.y > this->y; }bool operator >=(const stru& te) const { return te.y <= this->y; }bool operator <=(const stru& te) const { return te.y >= this->y; }bool operator !=(const stru& te) const { return te.y != this->y; }bool operator ==(const stru& te) const { return te.y == this->y; }
};

三、不定长数组:vector

1、声明
vector<int>v1;
vector<int>v2[N];
2、排序
sort(v1.begin(),v.end());
3、插入与删除
v1.push_back(1);//往尾部添加
v1.pop_back();//删除尾部
4、设定大小
v1.resize(5);
5、查重
 vector<int>v;v.push_back(1);v.push_back(1);v.push_back(2);v.push_back(2);v.push_back(5);v.push_back(5);v.push_back(4);sort(v.begin(), v.end());int m=unique(v.begin(), v.end())-v.begin();for (vector<int>::iterator it = v.begin(); it != v.end(); it++)cout << *it << ' ';cout << endl;cout << m << endl;

输出

1 2 4 5 4 5 5
4
6、其它
v1.clear();//清空
v1.empty();//判空
int num=count(V.begin(),V.end(),ask);  //查找ask的数量

四、集合:set

1、作用

自动判重,重复输入只存一个,自动从小到大排序

2、声明与插入
set<int>s;
s.insert(2);
s.insert(1);
s.insert(4);
s.insert(3);
s.insert(5);
3、迭代器输出
for(set<int>::iterator it=s.begin();it!=s.end();it++)
{cout<<*it<<endl;
}

输出

1
2
3
4
5

五、映射:map

map详细介绍

1、定义

map<key,value>代表了从键(key)到值(value)的对应关系

2、声明、插入,修改
 map<string, int>m;m["张三"] = 1;m["李四"] = 2;m["王五"] = 4;m["张三"] = 6;for (map<string, int>::iterator it = m.begin(); it != m.end(); it++){cout << it->first << ' ' << it->second << endl;}cout << endl;m.insert(pair<string, int>("张三", 1));for (map<string, int>::iterator it = m.begin(); it != m.end(); it++){cout << it->first << ' ' << it->second << endl;}

输出

李四 2
王五 4
张三 6李四 2
王五 4
张三 6
3、查找
int t = m.count("张三");
int t2 = m.count("小明");
cout << t << ' ' << t2 << endl;

输出

1 0

六、栈(stack):后进先出

1、声明
stack<int>s;
stack<int>se[N];
2、插入与删除
 stack<int>s;s.push(1);s.push(3);s.push(4);s.push(3);s.push(6);s.push(2);

此时s={1,3,4,3,6,2}

 s.pop();s.pop();

此时s={1,3,4,3}

 int t=s.top();

t=3;

七、队列(queue):先进先出

1、声明
queue<int>q;
queue<int>qu[N];
2、输入,删除
 queue<int>q;q.push(1);q.push(3);q.push(4);q.push(3);q.push(6);q.push(2);

q={1,3,4,3,6,2};

q.pop();
q.pop();

q={4,3,6,2};

int t=q.front();

t=4;

八、优先队列(priority_queue):谁大谁先出

1、声明
priority_queue<int>s;//谁大谁先出
priority_queue<int,vector<int>,greater<int> >q;//谁小谁先出
2、插入与删除
 queue<int>q;q.push(1);q.push(3);q.push(4);q.push(3);q.push(6);q.push(2);

q={1,2,3,3,4,6};

q.push(5);

q={1,2,3,3,4,5,6};

q.pop();
q.pop();

q={3,3,4,5,6};

int t=q.front();

t=3;

作者:Avalon Demerzel,喜欢我的博客就点个赞吧,更多紫书知识点请见作者专栏《紫书学习笔记》

【紫书第五章】String、结构体、部分STL的常见用法相关推荐

  1. Java 北大青鸟 第一学期 第五章 循环结构(一) 上级练习+课后作业

    第一学期 第五章 循环结构(一) 实例1 打印50分试卷 实例5 如何进行程序调试 Java MyShopping管理系统 > 购物结算+管理系统 本章作业 源码下载 实例1 int i = 1 ...

  2. DirectX12龙书--第五章笔记

    需要龙书电子版的可联系我,部分图片太大,csdn导入不了,可访问我的github图床github或者在书里面查看. DirectX12龙书第五章笔记 第五章 5.1 3D视觉即错觉? 5.2 模型的表 ...

  3. python 教程 第十五章、 结构布局

    第十五章. 结构布局 #!/usr/bin/env python #(1)起始行 "this is a module" #(2)模块文档 import sys #(3)模块导入 d ...

  4. C语言 第五章 选择结构 答案,c语言第五章 选择结构程序设计(习题册答案).doc

    第五章 选择结构程序设计 基础练习(A) 一.填空题 1.关系表达式的运算结果是 逻辑 值.C语言没有逻辑型数据,以 1 代表"真",以 0代表"假". 2.逻 ...

  5. c语言如何实现一只蜗牛爬的循环,[工程科技]第五章 循环结构程序设计c语言程序设计.ppt...

    [工程科技]第五章 循环结构程序设计c语言程序设计 第5章 循环结构程序设计 while语句 while语句 do while语句 do while语句 do while语句 do while语句 d ...

  6. 【紫书】第一章实验+问题

    紫书第1章实验 实验A1:表达式11111∗1111111111\ast1111111111∗11111的值是多少?改成6个1呢?9个1呢? 以下几个都用有符号整数%d\%d%d输出结果. 表达式11 ...

  7. 结构体作为STL map的key时需要注意什么? (某公司招聘面试试题)已跪~~~~(_)~~~~

    某公司招聘的面试环节, 有这样一个题目:结构体作为STL map的key时需要注意什么? 对于懂STL map的同学来说, 这个题目还是比较easy的, 先看程序: #include <iost ...

  8. c语言 结构体 占位符,深入理解结构体中占位符的用法

    深入理解结构体中占位符的用法 复制代码 代码如下: typedef union { struct x{ char a1 : 2; char b1 : 3; char c1 : 3; }x1; char ...

  9. C语言 结构体Struct 中冒号的用法

    C语言 结构体Struct 中冒号的用法 本文有部分内容参考菜鸟教程-C 位域 . 关于"位域"的说明 有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位. ...

  10. 【C语言笔记初级篇】第七章:结构体相关

    目录 (1)结构体的声明,定义,初始化和成员访问 A:什么是结构体 B:结构体声明和定义 C:结构体的初始化 D:成员访问 (2)结构体传参 (3)结构体自引用 (4)内存对齐 (5)结构体传参 (6 ...

最新文章

  1. android百度api配置,Android Studio 配置使用百度api (附带简单样例)(示例代码)
  2. 习题4-3 求分数序列前N项和 (15 分)
  3. 全球最大“同性”交友网站GitHub或被微软收购,收购价可能高达 50 亿美元
  4. Silverlight学习笔记之文字特效之ImageBrush
  5. Invoke-Express 执行多个批处理命令的函数
  6. MIRO/MIR7有何差别
  7. mysql 主主模式优缺点_mysql主主同步模式
  8. postman 使用_Postman简单使用
  9. Springboot-实现热部署
  10. 计算机网络技术试题 中职,计算机网络技术试题(附答案)中等职业学校.doc
  11. JS实现页面字体繁简转换
  12. 液晶12864图像取模方法
  13. cas虚拟服务器,适用于CAS虚拟化平台的CloudOS3.0云主机镜像的制作
  14. 安卓文件传输工具 Android File Transfer mac
  15. 有理数加法 (15 分)
  16. 大学中明白的一百件事情
  17. 如何开发一个鸿蒙的应用软件,别急,华为工程师已经告诉你了!动手开发鸿蒙系统的第一款应用
  18. 经常聊天会日久生情吗?
  19. 《计算广告》_刘鹏_[一]在线广告市场与背景_(2)计算广告基础
  20. Bron–Kerbosch算法求一般图最大团/最大独立集

热门文章

  1. 衰退的爱立信,进击的华为
  2. Java实现图片上传
  3. [设计模式] 15 解释器模式 Interpreter
  4. R6300V2 从 DD-WRT 回刷恢复 官方原厂固件   DD-WRT to R6300V2
  5. 使用作业异步调用存储过程的示例
  6. Expression Blend 中的Sketchflow for Windows Phone 7
  7. poi实现百万级数据导出
  8. js Object.is 相等判断
  9. 在阿里云上试用 Knative 1
  10. call及apply的用法理解