STL的基本应用

vector容器的基本使用

vector<int>v1, v2, v3, v4;

vector.assign(arr,arr+n)的写法
1.v1.assign(arr, arr + 5);//数组的值赋给v1


2.v2.assign(v1.begin(), v1.end());//v1赋值给v2容器


v3.assign(v1.begin() + 2, v1.end() - 1);//如果想把v1中的2,3元素赋给v3


v4.assign(5, 10);//赋了5个10给v4


swap()函数可以将两个vector容器的值进行交换


vector的大小

    vector<int> v1;
    v1(arr, arr + 5);
    cout <<"v1.size:" << v1.size() << endl;


//empty()函数是判断v1容器的大小是否为空
    if (v1.empty())//v1是否为空?
    {
        cout << "v1 is empty " << " ";

    }
    else
    {
        cout << "v1 is not empty" << " ";
    }
    return 0;
}


reszie()函数是改变vector容器大小的函数
如果变得比原来的大,则在多出的元素用零去填充
当然,也可以用reszie函数去指定v1的大小,再给多出的元素赋值
if你定义了一个v1的容器
可以用v1.push_back()函数在容器的末尾加上一个数值。


如果你想删除容器的最后一位的话,可以用v1.pop_back()


if你想在容器中的某一个位置添加一个元素的话,可以用v1.insert(v1.begin()+x,value值)
在vector容器中如果想要在容器中的一个位置中插入一个元素的话,可以用insert()函数来进行添加,
例子:
有一个v1容器,如果你想在v1的首相添加一个100,可以insert(v1.begin(),100)

命名一个vector的迭代器:

vector<int>::iterator it;

让it迭代器去指向v1容器里面的第一个元素

用for循环的方式去便利v1容器中的所有元素

deque容器:

要包含头文件

deque容器在头部和尾部删除元素的效率比vector容器的效率高。

但是在大部分情况中我们首选vector容器。

deque的操作

deque容器比vector容器多两个函数

deque.push_front(elem);//在deque容器的头部插入一个元素

deque.pop_front()//删掉头部第一个元素

list容器的操作

list是链表

链表在插入和删除元素的效率是要高的

list支持自增自减

it++  it--(OK)

it+n(err)

插入与删除

自定义了一个大小为空的list容器,在他的头部插入20在尾部插入10

lst.back()//获取lst中最后一个元素

 lst.front()//获取lst中第一个一个元素

通过lst.back()和lst.front()也可以对第一个和最后一个节点做修改

list的双向迭代器

反向迭代器

lsit<int> lst1(n,elem)  n是个数 elem是数值

lsit<int> lst1【beg,end)(beg和end是别的两个迭代器)

list容器不支持+n的写法

左闭右开,end加两次还取不到30

list<int>lst(const list,&list)

将lst1的值传到lst2的容器中

list的赋值

list.assign(beg,end)

通过swap方法

把lst1中的元素交换到lst2容器中

 list.size()代表的是list容器中的元素个数

list的大小

list.empty()是判断list容器中是否为空

false是逻辑假 是0

true是逻辑真 是非0

如果把上面的输入删掉的话 就是逻辑真 大小为零

list.resize()是重置了list的大小

如果-3的话就把原来的元素删掉

list的插入

list.insert():

list的删除 

list.erase(elem) 指定位置的元素被删除

list.remove(elem)删掉容器中所有elem

list.clear()是清空容器所有元素

list.reverse()反转

stack容器的出栈入栈

stack容器不允许迭代器遍历元素

访问元素只能把栈顶的元素删掉才能找出新的栈顶元素

快捷方式

stack.size()是容器大小

容器之间的互传

queue队列容器的应用(先进先出的容器)

取得queue容器的队首

对queue容器里面的值进行遍历

queue的数据存取

que.front() 和que.back() 是可以赋值的

set容器的操作

set容器的插入与迭代器

插入的元素最后是按升序的顺序排列的

降序的话就写一个反向的迭代器即可

可以自定义自增还是自减

自增:set<int, greater<int>>s2;

自减:set<int, less<int>> s1或set<int>;

set的查找

set.lower_bound(elem):

set.upper_bound(elem):

set的pair查找

map(键值对)容器操作

map的插入

map<int, string>mapS;

mapS.insert(pair<int, string>

mapS.insert(map<int, string>::value_type

1.

2.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值