c++进阶学习笔记--vector的使用

int main()
{
	vector<int> arr; //vector是个类模板,并且是数组(个人感觉是栈),所以需要特化类型,目前这样定义的组arr为空
	arr.push_back(2);  //push_back是从后往前传
	arr.push_back(1);
	arr.push_back(0);
	cout << arr[0] << endl;		//2
	cout << arr[1] << endl;		//1	
	cout << arr[2] << endl;		//0
	arr.pop_back();  //删除最后一个
	arr.push_back(3);
	cout << arr[2] << endl;     //3

	sort(arr.begin(), arr.end());  //sort对数组进行排序,默认为升序//begin是数组开头的那个元素,end是最后一个元素的下一个
	//打一下看一下
	int i;
	for (i = 0; i < 3; i++)
	{
		cout << arr[i] << endl;
	}
}

在对于其简单了解之后,我们定义一个student类这样的无法被常规排序的来试试

#pragma once
#include<string>
#include<iostream>
using namespace std;
class student
{
private:
	int id;
	string name;
public:
	student(const string& name, int id);
	int getId()const;
	void introduce()const;
};
#include"student.h"
student::student(const string& name, int id):name(name),id(id)
{}

int student::getId() const
{
	return id;
}

void student::introduce() const
{
	cout << id << ":" << name << endl;
}
#include<vector>
#include<algorithm>  //sort

using namespace std;

bool stucmp(const student& stu1,const student& stu2)
{
	return stu1.getId() > stu2.getId();
}

void test()
{
	vector<student> stus;
	int i;
	for (i = 0; i < 10; i++)
	{
		student stu("Sechs", i);  //构造一个学生(name,id)
		stus.push_back(stu);   //录入stus数组
	}
	//尝试对其进行sort排序的话就会报错;因为我定义的学生类是无法排序的
	//sort(stus.begin(),stus.end());
	//所以在此的解决办法最简单的就是写一个函数来实现对学生的顺序比较(当然这其中应该又自己的标准),我么把他写在前面
	sort(stus.begin(), stus.end(),stucmp);  //此时在定义之后 sort尾部加一个函数指针就可以了
	for (i = 0; i < 10; i++)
	{
		stus[i].introduce();  //输出看一下
	}
}
int main()
{
    test();//调用一下
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值