STL之vector

1.基本操作

1.包含头文件

#include<vector>

2.创建对象

vector<int> vec

3.尾部插入对象

vec.push_back(number)

4.使用下标访问

for(int i = 0; i < vec.size(); i++){
    cout << vec[i];
}

5.使用迭代器访问

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

6.任意位置插入对象

//在第四个元素前面插入number
vec.insert(vec.begin()+3,number);

7.任意位置删除对象

//删除第3个元素
vec.erase(vec.begin()+2);
//删除区间[3,6]内所有元素
vec.erase(vec.begin()+3,vec.end()+7);

8.整体大小(包含对象个数)

vec.size();

9.清空

vec.clear();

2.注意事项

vector里装载的对象不仅可以是常见的int、float、double、string等类型,还可以是自定义的结构体


3.算法(翻转与排序)

1.需要包含头文件

#include<algorithm>

2.翻转操作

reverse(vec.begin(), vec.end());

3.排序操作

//默认是按升序排列,即从小到大
sort(vec.begin(), vec.end());

对于自定义类,可通过两种方式调用sort()来进行排序

1.在类内重载”<”操作符

class Edge{
public:
    int start, end, weight;
    bool operator < (const Edge &e) const{
        return weight < e.weight;
    }
};

调用下面的函数即可升序排序

sort(vec.begin(), vec.end());

2.在类外重载函数

class Edge{
public:
    int start, end, weight;
};
bool Comp(const Edge &e1, const Edge &e2)
{
    return e1.weight < e2.weight;
}

调用下面的函数即可升序排序

sort(vec.begin(), vec.end(), Comp);

3.在类外重载函数改变排序方法

bool Comp(const int &a, const int &b)
{
    return a > b;
}

调用下面的函数即可降序排序

sort(vec.begin(), vec.end(), Comp);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值