c++ STL 二 vector,排序

1.vector 构造

int arr[] = { 2,3,4,5 };	
vector<int> v(arr, arr + sizeof(arr) / sizeof(int));
vector<int> v(10, 1);     创建10个  1在容器
vector<int> v3;        v3.assign(v2.begin(), v2.end());      将v2给v3
v2.swap(v3);         交换v2  v3        
int a= v2.size();    得到大小
v2.empty();          判断是否为空
v2.rsize(10)         重置容器大小默认0填充,

2.vector 遍历

   使用迭代器 vector<int>::iterator begin       生成迭代器位置

    vector<int>  v;
	v.push_back(10);
	v.push_back(20);
	v.push_back(30);
	vector<int>::iterator begin = v.begin();
	vector<int>::iterator end = v.end();
	while (begin!=end)
	{
		cout << *begin <<endl;
		begin++;
	}

   第二种  for 循环方式

for (vector<int>::iterator it=v.begin();it!=v.end(); it++ )
	{
		cout << *it << endl;            }

 for_each 算法遍历

for_each(_InIt _First, _InIt _Last, _Fn _Func)    容器第一个指针   第二个指针   将遍历得到值传入一个函数

void Myprint(int value)
{
	cout << value << endl;
}
for_each(v.begin(), v.end(), Myprint);

  自定义类型遍历

    指针就是存着一个地址, 而这个地址又存着一个具体的值

class Person{
public:
	Person(int age)
	{
		this->age = age;}
    int age;};

int main(void) {
	Person p1(15);
	Person p2(16);
	Person p3(17);
	vector<Person> v;
	v.push_back(p1);
	v.push_back(p2);
	v.push_back(p3);
	for (vector<Person>::iterator it=v.begin();it!=v.end(); it++ )
	{
		cout << it->age<< endl;
		cout << (*it).age<< endl;
}

 逆序遍历

for (vector<int>::reverse_iterator it = v.rbegin();it!=v.rend();it++) {}

  支持随机访问 :   vector<int>::iterator begin =v.begin()        begin = begin+3          不支持的不能 +   

 

3.vector 数据存取

vector<int> v;
int first = v.front();   返回第一个数据
int last = v.back();     返回最后一个数据

  插入,删除最后一个

v.insert(v.begin(), 10);       //向V中第一个前面插入 10
v.insert(v.begin(),2, 10);     //向V中第一个前面插入两个 10
v.pop_back();     删除最后一个

指定位置删除

v.erase(v.begin());           删除第一个
v.erase(v.begin(),v.end());   从第一个删到最后一个

  v.clear() 删除全部

排序

 1.sort(v.begin() , v.end())       默认从小到大                      2.自定义规则排序

bool Mycompare(int v1,int v2){
	return v1>v2;        }
sort(v.begin(), v.end(), Mycompare);

迭代器

普通迭代器 vector<int>::iterator it      反序迭代器: vector<int>::reverse_iterator it   只读迭代器: vector<int>::const_iterator it

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值