C++算法常用函数、容器

本文介绍了C++中的整数和字符串之间的转换方法(如to_string和stoi),字符转整数,保留小数的方法,以及动态数组(vector)、映射(map)、栈(stack)、队列(queue)和双端队列(deque)的基本操作,如翻转、插入、删除和访问元素等。
摘要由CSDN通过智能技术生成

目录

string:

整数和字符串互换:

字符转整数:

保留小数

翻转数组、字符串

vector 动态数组

map 映射

queue队列

deque双端队列


string:

substr:截取指定位置区间的字符串

find:查询要找的字符第一次出现的位置。(通过substr 和find可以很好的截取分割出每一个部分)

	string a="123/456";
	string b=a.substr(0,3); //截取0-3位置的字符串 
	cout<<b;
	int c=a.find("/"); //找到"/"第一次出现的位置。返回的是整数 
	cout<<endl<<c<<endl; 

整数和字符串互换:

to_string:转成字符串

stoi(m.c_str):将字符串m转变为int,当遇到非数字字符停止

	string bb="1234";
	int aa=stoi(bb.c_str());

字符转整数:

	char cc='2'; 
	int oo=cc-'0'; //字符char转int 
	cout<<oo<<endl;

保留小数

想保留几位,%.xf,就修改x变成几即可

double u=2.1231;
printf("%.2f",u);//保留两位小数

翻转数组、字符串

reverse翻转功能,注意函数返回值是void,函数会直接把放进去的变量翻转 

	string t="123456";
	reverse(t.begin(),t.end());//翻转字符串 
	cout<<t<<endl;
	int aaa[]= {1,2,3,4,5,6,7,8,9};
	reverse(aaa,aaa+9);//翻转数组 
	for(int i=0; i<9; i++) {
		cout<<aaa[i];
	}

vector 动态数组

插入:push_back()

遍历:

	vector<int>x;
	x.push_back(1); 
	x.push_back(2); 
	x.push_back(3); 
	x.push_back(4); 
	x.push_back(5); 
for(int i=0;i<x.size();i++){
		cout<<x[i]<<endl; 
	}

map 映射

赋值:直接把键作为位置索引即可

	map<string,int>mp;
	mp["1"]=2;
	string po="s";
	mp[po]=3;
	cout<<mp["1"]<<endl; 
    cout<<mp[po]<<endl;

删除:

mp.erase("1");

插入:push()

获取栈顶:top()

弹出:pop()

	stack<int>xx;
	xx.push(2);
	int i=xx.top();
	cout<<i<<endl;
	xx.pop();

queue队列

push(x):将元素x放入队尾。
pop():将队头元素出队。
empty():判断队列是否为空,为空返回true,否则返回false。
size():返回队列长度。
front():返回队头元素,不出队。
back():返回队尾元素。

queue<int>de;
de.push(23);
cout<<de.front()<<endl;
de.pop();

deque双端队列(在一个元素插入删除之后,其他的元素地址会发生变化)

类似数组可以直接获取位置处的元素

双端队列的本质是指针地址,对于一个队列a[i],i的地址不变,数可以变,所以当队列中插入元素时,元素的排列顺序发生变化,那么地址上所存储的元素就跟着变了 

deque<int>a;
a.push_back(1);
cout<<a[0];

size()//返回返回容器中元素个数
begin()//返回头部迭代器
end()//返回尾部+1迭代器
rbegin()//返回逆首部迭代器
rend()//返回逆尾部-1迭代器
front()//返回首个元素
back()//返回尾部元素
push_front()//在前面添加一个函数
emplace_frontback()//和push_front()是一样的作用
push_back()//在末尾添加一个函数
emplace_back()//和push_back()是一样的作用
pop_front()//弹出第一个个元素
pop_back()//弹出最后一个元素
empty()//判断是否为空
insert()//在指定位置插入元素
erase()//在指定位置删除元素
clear()//清空容器

    deque<int>dq;
	dq.push_front(1);
	dq.push_front(2);
	dq.pop_front();
	cout<<dq.front()<<endl;
	dq.push_back(4);
	dq.push_back(5);
	dq.pop_back();
	cout<<dq.back()<<endl;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值