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" ...
随机推荐
- Poj1328Radar Installation雷达安装
原题链接 经典贪心,转化为问题为,对于所有的区间,求最小的点数能使每个区间都至少有一个点. #include<iostream> #include<cstdio> #inclu ...
- Oracle 11G在用EXP 导入、导出时,若有空表对导入导出中遇到的问题的解决
11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segmen ...
- Service Worker,Web Worker,WebSocket的对比
Service Worker 处理网络请求的后台服务.适用于离线和后台同步数据或推送信息.不能直接和dom交互.通过postMessage方法交互. Web Worker 模拟多线程,允许复杂计算功能 ...
- es6模块化设计
//导出 //方式一 export const name = 'hello' export let addr = 'chengdu' export var list = [1,2,3] //方式二 c ...
- linux centos7分区
哈喽! 我今天来分享一下Linux的分区,本次我使用的是LinuxCentos7版本为例,使用虚拟机,命令是fdisk Linux分区有4个主分区及扩展分区,逻辑分区. 首先给虚拟机添加8G硬盘(硬盘 ...
- CDH的坑之Deploy Client Configuration Failed
Deploy Client Configuration Failed 1.问题描述 当使用CDH增添spark服务的时候,出现了以下错误: Faile to deploy client configu ...
- Codeforces Round #599 (Div. 2) B2. Character Swap (Hard Version)
This problem is different from the easy version. In this version Ujan makes at most 2n2n swaps. In a ...
- iframe子页面之间值传递
<div style="width:100%;height: 100%;"> <div style="width:74%;height: 70%;flo ...
- Good Bye 2019E(点坐标缩小一半以区分奇偶性)
设某个点的坐标为(x,y),根据坐标奇偶性公可分为四类,0表示偶数,1表示奇数,(0,0),(0,1),(1,0),(1,1). 如果所有点的坐标都属于一类,那么它们之间的距离都是4的倍数,无法分辨. ...
- laravel执行数据库迁移的过程中出现Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] Operation timed out (SQL: select * from information_schema.tables where table_schema = shop and table_name = migrations
向customers表添加字段phone php artisan make:migration add_phone_to_customers_table 问题: 解决方法: 将DB_HOST配置项修改 ...