string就我理解是一种定义字符数组的数据类型:
可以直接string a;
也可以string b[100];//字符串数组
当做一个字符数组使用,而且有着比字符数组更加简便的使用方法,可以直接用于string类的比较复制连接,当然也可以输出、改变、比较一个字符串中的某个字符用法跟数组相同;
例如
#include <iostream>
using namespace std;
int main()
{
string a;
cin>>a;//a=abc
for(int i=0;i<3;i++)
cout<<a[i];
//输出结果就是abc
cout<<a;
//也可以像字符数组哪样整体输出结果也是abc
return 0;
}
那连接就是直接相加,也可以直接赋值;
还有许多的关于string的函数比如一些比较常用的str.enth(),str.size() str.empty()
总的来说string大大的降低了写代码时的难度更加的简便与快捷。
栈(stack)
头文件< stack >
栈是一种先进后出,在许多情况下可以使用
定义时stack< int > a;
其中的函数有 a.pop() a.push() a.top() a.size() a.empty()
比如括号匹配问题
大体思路就是遇到左括号(无论中括号小括号花括号)都压入栈里当遇到右括号时将栈顶也就是最后压入的左括号弹出,直到最后所有输入结束;体现的栈的使用
#include <iostream>
#include<stack>
using namespace std;
int main()
{
stack<char>a;
char b[10];
cin>>b;
for(int i=0;i<10;i++)
{
if(b[i]=='(')
a.push(b[i]);
if(b[i]==')')
{
a.pop();
}
}
if(a.empty())
cout<<"all maches";
else
{
int k=a.size();
for(int i=0;i<k;i++)
{
cout<<a.top();
a.pop();
}
}
return 0;
}
在这简单提一下排序函数:
sort是排序函数在头文件algorithm下的函数
sort(初始位置的地址,第一个无效位置的地址,比较条件)
如果没有比较条件就是从初始位置的地址到第一个无效位置地址之前这些数据从小到大排序,如果是自定义的函数的话如果是返回的true那么就不交换,如果是false就交换
简单举例:bool cmp(int a,int b){return a>b;}
这个例子就是让排序从大``到小排序,由此可以用到结构体的某一项比较来排序,或者其他用法。
#include <iostream>
#include<algorithm>
using namespace std;
bool cmp1(int a,int b)
{
return a>b;
}
bool cmp2(char a,char b)
{
return a>b;
}
int main()
{
int a[10]={2,3,4,7,3,5,6,7,1,19};
char b[10]="kndsaoiwf";
sort(a,a+10,cmp1);
sort(b,b+10,cmp2);
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
for(int i=0;i<10;i++)
cout<<b[i]<<" ";
cout<<endl;
return 0;
}