一.输入与输出
必须要有#include <iostream> using namespace std;
1.输入:
cin >>变量1;
cin >>变量1>>变量2>>变量n;
2.输出:
cout <<表达式<<endl;
cout <<表达式1<<表达式2<<…<<表达式n;
cout <<endl;//换行;
例如Hello world的输出:
#include <iostream>
using namespace std;
int main()
{
cout<<"hello world"<<endl;
}
3、字符串
1、定义字符串变量要用类名string,例如:
string string1;
2.c中使用strcat来连接字符串,C++使用+。例如:
string3 = string2 +string1;
3.c中会使用函数strcpy来将string2赋给string3,c++直接使用 = 。
string1 = string2;
4.字符串比较直接使用关系运算符如>,<,>=,<=,==.符合条件返回1,不符合返回0.
5. c++常用字符串函数
函数 | 函数 |
---|---|
append | 将字符添加到字符串的末尾 |
at | 返回字符串中的指定位置处的元素的引用 |
c_str | 将字符串的内容转换为 C 样式空终止字符串 |
data | 转换为字符数组的字符串的内容 |
empty | 测试是否该字符串包含的字符 |
erase | 从指定位置字符串中移除元素或某个范围的元素 |
find | 与指定的字符序列匹配的子字符串的第一个匹配项的向前搜索字符串 |
find_first_not_of | 搜索与指定任何的字符串元素相匹配的第一个字符的字符串 |
find_first_of | 搜索与指定任何的字符串元素相匹配的第一个字符的字符串 |
length | 返回字符串中的元素的当前数目 |
2.栈和队列
1 栈(后进先出).
1.需要头文件#include<stack>
2.入栈:push()
形式:s.push(1);
3. 出栈:pop()
形式:s.pop();
注意:出栈操作并没有任何返回值。
4. 栈顶元素访问:top()
形式: cout<<s.top()<<endl;
4. 判断是否为空:empty()
形式:cout<<s.empty()<<endl;若是空则返回1,若不为空则返回0.
5. 求栈中的元素个数:size()
形式:cout<<s.size()<<endl;
6. 取栈顶:s.top();取栈顶即返回栈顶元素。
2.队列
1.定义一个优先队列:priority_queue pq; 与栈类似
2.判断一个队列是否为空: empty();
3.队头元素出队: pop();
4.插入一个元素:push();
5.返回队列中拥有的元素个数:size();
6.返回优先队列的队顶元素:top();
#include<bits/stdc++.h>
#include<stack>
#include<queue>
using namespace std;
int main() {
stack<int>s; //定义栈
queue<int>q; //定义队
}
简单应用:
【例】将十进制数转化为二进制数。
解答:按除2取余法。
分析:由于最先得到的余数是转化结果的最低位,最后得到的余数是转化结果的最高位,因此用栈来解决。
#include<bits/stdc++.h>
#include <STACK>
using namespace std;
void conversion(int N)
{
stack<int> S;
while(N)
{
S.push(N%2);
N=N/2;
}
while(!S.empty())
{
printf("%d",S.top());
S.pop();
}
}
int main()
{
cin>>n;
fun(n,2);
}