一 vector 的初始化
vector可以使用数组初始化
vector的初始化:
vector<int> a ; //声明一个int型向量a
vector<int> a(10) ; //声明一个初始大小为10的向量
vector<int> a(10, 1) ; //声明一个初始大小为10且初始值都为1的向量
使用数组初始化vector:
int n[] = {1, 2, 3, 4, 5} ;
vector<int> a(n, n+5) ; //将数组n的前5个元素作为向量a的初值
vector<int> a(&n[1], &n[4]) ; //将n[1] - n[4]范围内的元素作为向量a的初值
vector<int> a ;
a.resize(10) //重新指定向量的长度
vector迭代器的使用方法:
int n[] = { 0,1,2,3,4 };
vector<int> vec(n,n+5);
for (vector<int>::iterator iter = vec.begin();iter != vec.end();++iter) {
cout << *iter << " ";
}
cout << endl;
for (int j = 3;j < 6;++j) {
if (find(vec.begin(),vec.end(),j) != vec.end())
cout << j << " ";
}
cout << endl;
vec.clear();//清空vector
cout << vec.size()<< endl;
注意:vector中没有find()函数,需要添加#include<algorithm>
二 set的使用方法
set集合是c++ stl库中自带的一个容器,set具有以下两个特点:
1 set中的元素都是排好序的
2 set集合中没有重复的元素
1 set的初始化:
int n[] = { 0,1,2,3,4 };
set<int> set1(n, n + 5);
//set<int> set2(10,1); //错误
set<int> set3={4,5,6};
2 set迭代器
set中并没有重载[]运算符,只能通过迭代器访问元素
int n[] = { 0,1,2,3,4 };
set<int> set1(n, n + 5);
//set<int> set2(10,1); //错误
set<int> set3={4,5,6};
for (set<int>::iterator s = set1.begin();s != set1.end();++s) {
cout <<*s<< " ";
}
cout << endl;
for (int j = 3;j < 6;++j) {
if (set1.find(j) != set1.end())
cout << *set1.find(j) << " ";
}
vector和set中都有begin()和end()函数,用于返回其中第一个元素和最后一个元素的后一位置的迭代器
数组的初始化: