STL技巧大赏
map
-
i
n
s
e
r
t
insert
insert 没有重复键值,如果新插入的键值与原有的键值重复则覆盖
-
b
e
g
i
n
begin
begin
-
e
n
d
end
end
-
c
l
e
a
r
clear
clear 清除所有
-
c
o
u
n
t
count
count 某个元素出现次数
-
l
o
w
e
r
/
u
p
p
e
r
b
o
u
n
d
lower/upper bound
lower/upperbound
set
- 比
m
a
p
map
map多
e
r
a
s
e
(
f
r
o
m
,
t
o
)
erase(from,to)
erase(from,to) (fron、to是指针)
vector
#include
using namespace std;
int n;
vector<int> q;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int op,k;
scanf("%d%d",&op,&k);
if(op==1) q.insert(lower_bound(q.begin(),q.end(),k),k);
if(op==2) q.erase(lower_bound(q.begin(),q.end(),k));
if(op==3) printf("%d\n",lower_bound(q.begin(),q.end(),k)-q.begin()+1);
if(op==4) printf("%d\n",q.at(k-1));
if(op==5) printf("%d\n",q.at(lower_bound(q.begin(),q.end(),k)-q.begin()-1));
if(op==6) printf("%d\n",q.at(upper_bound(q.begin(),q.end(),k)-q.begin()));
}
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
list
list<int>list1;
list.push_back();
list.push_front();
list.pop_back();
list.pop_front();
list.front();
list.back();
list.empty();
list.size();
list.clear();
list.remove(2);
list.insert(list.begin()+i,a);
list.erase(list.begin()+i);
swap(list1,list2);
list1.splice(list1.begin(),list2);
list.reverse();
list.sort();
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
bitset
b
i
t
s
e
t
bitset
bitset 在算导上的简述