pair node stack vector string priority_queue
map
#include <bits/stdc++.h>
using namespace std;
#define int long long
map<char,string> mp;
signed main() {
ios::sync_with_stdio();
mp[''] = "";mp[''] = "";mp[''] = "";
mp['A'] = ""; map<char,string> :: iterator it;
for(it = mp.begin(); it != mp.end();it++)
cout << it->first << " " << it->second << endl;
cout << "倒序遍历:\n";
for(auto t = --mp.end();;t--){
cout << t->first << " " << t->second << endl;
if(t == mp.begin()) break;
}
cout << "auto的遍历:\n";
for(auto itt : mp)
cout << itt.first << " " << itt.second << endl; return ;
}
vector
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> v;
int main(){
if(v.empty())
puts("v is empty");
for(int i = ; i < ; i ++)
v.push_back(i);
cout << v.size() << endl;
v.insert(v.begin() + , );//在第10个元素前面插入10
v.push_back();//尾部插入10
for(int i = ; i < v.size(); i++)
cout << v[i] << " ";
cout << endl;
v.erase(v.begin() + );//删除第10个
v.pop_back();//删除末尾
for(int i = ; i < v.size(); i++)
cout << v[i] << " ";
cout << endl;
reverse(v.begin(),v.end());//反转
for(int i = ; i < v.size(); i++)
cout << v[i] << " ";
cout << endl;
sort(v.begin(),v.end());
for(int i = ; i < v.size(); i++)
cout << v[i] << " ";
return ;
}
v [ n ]
返回 v 中位置为 n 的元素。
push_back() 在数组的最后添加一个数据
pop_back() 去掉数组的最后一个数据
begin() 得到数组头的指针
end() 得到数组的最后一个单元+1的指针
empty() 判断vector是否为空
swap() 与另一个vector交换数据
string
| 长度 | str.length(), str.size() |
|---|---|
| 比较 | str1.compare(str2) |
| 查找 | pos = str1.find(str2) |
| 连接 | str1 += str2 |
| 插入 | str1.insert(pos,str2) |
| 替换 | str1.replace(pos,n,str2) |
| 删除 | str1.erase(pos,len) |
| 清除 | str.clear() |
| 判空 | str.empty() |
| 反转 | reverse(s.begin(),s.end()) |
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
string str1,str2,str3;
str1 = "Hello";
str2 = "World";
cout << str1.insert(2,str2) << endl;
cout << str1 << endl;
cout << str1.replace(0,1,str2) << endl;//从下标0开始的1个用str2替换
cout << str3 << endl;
cout << str3.find("World") << endl;
cout << str3.erase(2,3)<< endl;
cout << str3 << endl;
reverse(str3.begin(),str3.end());
cout << str3 << endl;
}
vector 和string基本差不多
priority_queue
建立的时间复杂度O(n)
插入删除时间复杂度O(log n)
升序
priority_queue<int,vector<int>,greater<int>> que;
降序
priority_queue<int> que;
与普通队列
同:在队尾插入,队头删除
异:队列中最大元素总是在队头(这也就是说,出队列不是按照先进先出,而是按照元素大小,从大到小出去)
pair node stack vector string priority_queue的更多相关文章
- c++ StrVec等效vector(string)的类
c++ StrVec等效vector<string>的类 知识点 静态成员变量要在类外定义和初始化 allocator类是使用和uninitialized_copy的配合使用,实现stri ...
- C++ Split string into vector<string> by space
在C++中,我们有时候需要拆分字符串,比如字符串string str = "dog cat cat dog"想以空格区分拆成四个单词,Java中实在太方便了,直接String[] ...
- 单独删除std::vector <std::vector<string> > 的所有元素
下面为测试代码: 1.创建 std::vector< std::vector<string> > vc2; 2.初始化 std::vector<string> vc ...
- 给jdk写注释系列之jdk1.6容器(10)-Stack&Vector源码解析
前面我们已经接触过几种数据结构了,有数组.链表.Hash表.红黑树(二叉查询树),今天再来看另外一种数据结构:栈. 什么是栈呢,我就不找它具体的定义了,直接举个例子,栈就相当于一个很窄的木桶 ...
- 编写程序,将来自文件中的行保存在一个vector<string>,然后使用一个istringstream 从vector中读取数据,每次读一个单词
#include<fstream> #include <vector> #include<string> #include<iostream> #inc ...
- vector(char*)和vector(string)
vector<char*> ch; vector<string> str; for(int i=0;i<5;i++) { char *c=fun1();//通过这个语句产 ...
- Effective STL 学习笔记: 多用 vector & string
Effective STL 学习笔记: 多用 vector & string 如果可能的话, 尽量避免自己去写动态分配的数组,转而使用 vector 和 string . 原书作者唯一想到的一 ...
- PKU 1035 Spell checker(Vector+String应用)
题目大意:原题链接 1输入一个字符串,如果字典中存在该字符串,直接输出,否则; 2.删除,替换,或插入一个字母.如果使得输入字符串==字典中已经有的单词,输出该单词,否则. 3.直接输入下一个字符串, ...
- C++ Stack 与String
// ConsoleApplication1.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. // #include "pch.h" ...
随机推荐
- 来了,就给自己立个flag
2019-09-16,刚刚申请的博客园. 不知道不觉,自己已经大四毕业了. 说来惭愧,已经接触IT这方面已经四年了. 但仍然感觉自己像个萌新,啥也不懂,这也不会,那也不会. 8月开始在公司大佬的指导下 ...
- 题解【洛谷P3951】[NOIP2017]小凯的疑惑
题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的 ...
- dbShape
Usage: dbShape [-help] [-d] [-step <step>] [-output {polygon rect hrect area}] <shapeList&g ...
- 使用Id访问table对象,使用Id访问Input对象
先看例子(好吧 无意中发现 可以通过Id访问DOM元素,如div) <!DOCTYPE html> <html> <head> <meta cha ...
- html滑动
$('html, body').animate({scrollTop: 1500}, 'fast');
- 在springboot项目中引入quartz任务调度器。
quartz是一个非常强大的任务调度器.我们可能使用它来管理我们的项目,常见的是做业绩统计等等.当然它的功能远不止这些.我们在这里不介绍quartz的原理,下面讲讲如何在springboot中使用qu ...
- Chrome浏览器添加信任站点
转载来源:https://zhidao.baidu.com/question/1946829886340846268.html 在浏览器地址栏输入:chrome://net-internals/#hs ...
- python开发基础01-字符串操作方法汇总
字符串 Python对字符串的处理内置了很多高效的函数,非常方便功能很强大. "hello world" 字符串七种常用功能: 连接和合并 + join 移除空白 strip 分 ...
- HDU2121 Ice_cream’s world II (最小树形图)
在建图的时候对原图进行加边 建立一个超级源点~ #include<cstdio> #include<algorithm> #include<cstring> usi ...
- Vue集成openlayers
1.安装ol库 使用cnpm i ol -s命令安装 2.建一个olMap.vue文件夹 <template> <div class='olMap'> <h2>{{ ...