c++作为面向对象的设计语言,stl使其无比出色用了许久的stl至今还要查笔记(惭愧。。),今天总结一下。
这是set的用法。
这里非常重要的是set可以去重和自排序,并且可以使用find函数进行o(lgn)的查找。
LIST
注意insert(it,n);
可以在迭代器it的位置插入n。等同于数据结构课上学的链表。
list用法大全
利用stringstream可以将字符串类型重新读入为整型。
stringstream ss(s);
int x;
int i = 0;
while(x >> ss)
{
a[i] = x;
i++;
}
map是按first进行排序的
reversereverse(pc, pc+pos+1);
从两个位置将数组反转****
max_elementint pos = max_element(pc, pc+n-i) - pc;
求最大数的位置
测试程序:
#include <bits/stdc++.h>
using namespace std;
int a[100];
int main()
{
for(int i = 0;i < 10;++i)
{
scanf("%d",&a[i]);
}
reverse(a,a + 10);
int pos = max_element(a,a + 10) - a;
printf("%d\n",pos);
for(int i = 0;i < 10;++i)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
/*样例
1 2 3 4 5 6 7 8 9 0
输出
1
0 9 8 7 6 5 4 3 2 1
*/
测试程序二:
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<int> a;
for(int i = 0;i < 10;++i)
{
int m;
scanf("%d",&m);
a.push_back(m);
}
reverse(a.begin(),a.end());
vector<int> :: iterator pos;
pos = max_element(a.begin(),a.end());
printf("%d\n",*pos);
for(int i = 0;i < 10;++i)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
/*样例
1 2 3 4 5 6 7 8 9 0
输出
9
0 9 8 7 6 5 4 3 2 1
*/