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" ...
随机推荐
- 2.7.1 元素定位:selenium消息框处理 (alert、confirm、prompt)
来源:http://blog.csdn.net/cui_angel/article/details/7784211 http://www.cnblogs.com/tobecrazy/p/ ...
- JAVA Feign
Feign 是一种声明式.模板化的 HTTP客户端 . 在Spring Cloud中使用 Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程 ...
- 通过scrapy,从模拟登录开始爬取知乎的问答数据
这篇文章将讲解如何爬取知乎上面的问答数据. 首先,我们需要知道,想要爬取知乎上面的数据,第一步肯定是登录,所以我们先介绍一下模拟登录: 先说一下我的思路: 1.首先我们需要控制登录的入口,重写star ...
- threading 官方 线程对象和锁对象以及条件对象condition
官方地址:https://docs.python.org/2/library/threading.html#thread-objects 以下只截取condition部分,其他Lock()以及thre ...
- springboot jar文件打zip包运行linux环境中
1.添加打包配置文件 1.1 assembly.xml <assembly xmlns="http://maven.apache.org/plugins/maven-assembly ...
- 【游戏体验】Buttonhunt(鼠标寻找按钮)
虽然画风千奇百变 但这款益智游戏的趣味性相当高 推荐试玩 个人测评 游戏性 9/10 音乐 4/10 剧情 6/10 总评 19/30
- GIL/Copy/私有/面向对象
1. GIL Python语言和GIL没有关系.仅仅是由于历史原因在Cpython虚拟机(解释器),难以移除GIL. GIL:全局解释器锁.每个线程在执行的过程都需要先获取GIL,保证同一时刻只有一个 ...
- 安装Redis教程
今天因为要用到redis中间件,于是自己就尝试安装一下,我把步骤记录了,分享给大家,希望能对大家有帮助! 我的博客地址: https://www.cnblogs.com/themysteryofhac ...
- MindManager安装、激活
MindManager安装 MindManager激活
- Spark原理概述
原文来自我的个人网站:http://www.itrensheng.com/archives/Spark_basic_knowledge 一. Spark出现的背景 在Spark出现之前,大数据计算引擎 ...