一、用法总结
1.放入容器尾部vis.push_back(x)
2.元素个数vis.size()
3.删除元素vis.erase(vis.begin()+1)
,表示删除第二个元素,删除的是迭代器
4.检查容器是否为空vis.empty()
5.返回容器尾部的元素vis.back()
6.清空容器vis.clear()
7.插入元素vis.insert(vis.begin(),2);
,表示在vis【0】插入2
8.删除尾部元素vis.pop_back()
,删除尾部元素
9.排序sort(vis.begin(),vis.end())
,遵循左闭右开,即vis.end()不排序
关于时间复杂度:
erase和insert都是O(n)
二、题目总结
nefu 1675 中间数
题目比较水
#include <bits/stdc++.h>
using namespace std;
vector<int>vis;
int main()
{
int x;
while(cin>>x&&x)
{
vis.push_back(x);
}
if(vis.size()%2==1)cout<<vis[(vis.size()-1)/2]<<endl;
else cout<<(vis[vis.size()/2-1]+vis[vis.size()/2])<<endl;
return 0;
}
nefu 2128 锯齿矩阵
#include <bits/stdc++.h>
using namespace std;
int main()
{
int x,n,m,y;
ios::sync_with_stdio(false);
while(cin>>n>>m)
{
vector<int>vis[n+1];
for(int i