河北大学程序设计训练营
前言:
STL是Standard Template Library的简称 中文名标准模板库
STL可分为:
容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adapters)、算法(algorithms)、仿函数(functors)六个部分。
vector
(Vector)是一个封装了动态大小数组的顺序容器。
1.初始化(构造函数)
1 2 3
| vector():创建一个空vector vector(int nSize):创建一个vector,元素个数为nSize vector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t
|
2.增加元素
1
| void push_back(const T& x):向量尾部增加一个元素X
|
3.删除函数
1
| void pop_back();删除向量中最后一个元素
|
4.循环遍历
1 2 3 4
| iterator begin():返回向量头指针,指向第一个元素 iterator end():返回向量尾指针,指向向量最后一个元素的下一个位置 vector<int>::iterator
|
5.判断函数
1
| bool empty() const:判断向量是否为空,若为空,则向量中无元素
|
6.大小函数
1
| int size() const:返回向量中元素的个数
|
练习程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include<iostream> #include<vector> using namespace std;
int main(){ vector<int> v; for(int i=0; i < 10;++i){ v.push_back(i); } for(vector<int>::iterator it = v.begin() ; it != v.end() ; ++it){ cout << *it << ","; } v[0] = 100; cout << v[0]; }
|
vector 动态数组 谁是冠军
因为这里使用vector太牵强了,所以
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include<iostream> using namespace std; int main(){ int n; int max_num = -1000; int max_id = 0; cin >> n; for(int i=0; i<n; ++i){ int id , win , lose , eq; cin >> id >> win >> lose >> eq; int sum = win * 3 + lose - eq; if(sum > max_num){ max_num = sum; max_id = id; } } cout << max_id; }
|
vector Pro 数组循环左移
now = m % n (m是有可能大于n的)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #include<iostream> #include<vector> using namespace std;
int main(){ vector<int> v(105); int n,m; cin >> n >> m; int now = m % n; for(int i=0;i<n;++i) cin >> v[i]; int count = n; for(int i=now;i<n;++i){ if(count ==1 ){ cout << v[i] << endl; count --; }else{ cout << v[i] << " "; count --; } } for(int i=0; i < now ;++i){ if(count ==1 ){ cout << v[i] << endl; count --; }else{ cout << v[i] << " "; count --; } } }
|
String
String 学号解析
1 2 3 4 5 6 7 8 9 10 11 12
| #include<iostream> #include<string> using namespace std;
int main(){ string id; cin >> id; cout << "year:" << id.substr(0,4) << endl; cout << "department:" << id.substr(4,2) << endl ; cout << "class:" << id.substr(6,2) << endl; }
|