C++基础使用

C++容器

数组

初始化

int* dp = new int[n+1];

vector

操作
通过push_back往里面插入元素。

1、vector排序

Queue

头文件

#include<queue>

初始化

queue<TreeNode*> Node_queue;

加入元素

Node_queue.push(tn);

获取第一个元素

Node_queue.front();

弹出第一个元素

Node_queue.pop();

函数名 使用介绍
q.pop() 删除queue的队头元素
q.front() 返回队列的队头元素,但不删除该元素
q.back() 返回队列的队尾元素,但不删除该元素
q.push(arg) 将元素arg插入到队列的队尾
q.emplace(arg) 将元素arg放置到队列的尾部,作用和push一样
q.size() 返回队列中元素的个数
q.empty() 当队列为空时返回true,否则返回false
q.swap(q1) 交换q和q1中的元素,方法和stack中一样,并不会真正使用拷贝形式进行交换,只是交换底层的数据结构
swap(q,q1) 非成员函数,和成员函数swap一样

unordered_set

头文件 unordered_set
unordered_map::insert
unordered_map::find
unordered_map::erase

unordered_map

头文件

#include <unordered_map>

初始化

std::unordered_map<std::string, std::string> umap;

初始化并赋初值(有两层括号)

std::unordered_map<std::string, std::string> umap{
    {"Python教程","http://c.biancheng.net/python/"},
    {"Java教程","http://c.biancheng.net/java/"},
    {"Linux教程","http://c.biancheng.net/linux/"} };

基础使用

count(key)	在容器中查找以 key 键的键值对的个数。
equal_range(key)	返回一个 pair 对象,其包含 2 个迭代器,用于表明当前容器中键为 key 的键值对所在的范围。
emplace()	向容器中添加新键值对,效率比 insert() 方法高。
emplace_hint()	向容器中添加新键值对,效率比 insert() 方法高。
insert() 	向容器中添加新键值对。
erase()	删除指定键值对。
根据键设置值:map[t] = i
根据键查找值:return map[t]

Stack

基本操作

初始化

 stack<TreeNode*> s;

插入元素

s.push(root);

判空

s.empty()

获取头元素&删除头元素

TreeNode* cur = s.top();
s.pop();

Pair

使用pair定义stack

stack<pair<int,TreeNode*>> st;

产生pair类型的值

make_pair(0,root);

获取pair的值

auto [color,root] = st.top();
基本类型排序:
 // using default comparison (operator <):
 默认为升序
 std::sort (myvector.begin(), myvector.begin()+4);           //(12 32 45 71)26 80 53 33
 sort里面的范围表示的是需要排序的部分

 // using function as comp
 自己写方法进行比较
bool myfunction (int i,int j) { return (i<j); }
ij的顺序是i在j前,后面的表示i和j的大小i<j
 std::sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80)
自定义类型排序:

C++比较大小

直接使用max即可

dp[i] = max(1,2);

string相关操作

注意:头文件是

#include<string>

1、string substr (size_t pos = 0, size_t len = npos) const;

产生子串返回一个新建的 初始化为string对象的子串的拷贝string对象。
子串是,在字符位置pos开始,跨越len个字符(或直到字符串的结尾,以先到者为准)对象的部分。

2、string substr( int pos);
产生str从pos位置开始到结束的子串,包含开始位置。

3、String转化为int
atoi()和stoi()函数

相同点:
①都是C++的字符处理函数,把数字字符串转换成int输出
②头文件都是#include

不同点:
①atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char类型的,而stoi()的参数是const string,不需要转化为 const char*;
str.c_str()

	string t = "xxxx";
   char* c;
   c = (char*) t.c_str();

②stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime error!
而atoi()不会做范围检查,如果超出范围的话,超出上界,则输出上界,超出下界,则输出下界;

特殊值

INT

最大、最小值,最大值为232-1,最小值为2-32
头文件为limits.h

#include<limits.h>
int min=INT_MIN;
int max=INT_MAX;

————————————————
版权声明:本文为CSDN博主「哦啦哦啦!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42240667/article/details/102980631

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值