笔记1
cpp
string s;
while(cin>>s);
cout<<s.length()<<endl;
输入为hello nowcoder时,输出为8 (nowcoder的长度)
2.字符串的输入(有空格)
cpp
string a;
getline(cin, a);
cout<<a<<endl;
输入为ABCabc a
输出为ABCabc a
否则,就用一般性的cin>>a;cout<<a;
3.排序函数sort(first,last)
cpp
//#include <algorithm>(要添加头文件)
int a[10] = {9, 6, 3, 8, 5, 2, 7, 4, 1, 0};
sort(a, a + 10); // 10为元素个数
没有第三个参数,默认升序。
如果降序排序:
cpp
//#include <algorithm>(要添加头文件)
sort(a, a + 10, greater<int>()); // 10为元素个数
4.合并键值对(map的使用)
cpp
//#include <map>(要添加头文件)
map <int,int> m; //定义
cin>>n;
for (int i=0;i<n;i++)
{
cin>>x>>y; //赋值
m[x]+=y; //合并
}
for(map<int,int>::iterator it=m.begin();it!=m.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
5.字符与字符串的熟悉巩固
cpp
string a1;
a1={'a','b','c'}; //等效于string a1={"abc"};
char a2=a1[1];//索引的形式
cout<<a1<<endl;//输出结果为abc
char b=66;
cout<<b<<endl;//输出结果为B
char b='66';
cout<<b<<endl;//输出结果为66
char b[]="student" //这个叫字数组
6.stake(堆栈)的使用
定义: stack<数据类型> 容器名
常用函数:
empty() //判断堆栈是否为空
pop() //弹出堆栈顶部的元素
push() //向堆栈顶部添加元素
size() //返回堆栈中元素的个数
top() //返回堆栈顶部的元素
cpp
#include<stack> //头文件
int main() {
string a;
stack<string>s; //定义堆栈的形式
while(cin>>a) //控制输入
{ s.push(a); } //压栈
while(!s.empty()) //判断非空
{ cout<<s.top()<<" "; //顶部元素
s.pop(); //循环弹出堆栈顶部元素
}
}
- 容器(vector)的使用
定义: stack<数据类型> 容器名
cpp
vector<string>a1(n);
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a1[i]; //给容器赋值
}
sort(a1.begin(),a1.end()); //排序。begin/end 都是容器的常规操作
for(int i=0;i<n;i++)
cout<<a1[i]<<endl;