2021.8.7 stl

.  P1396 60分

  (调试

int find(int x)//并查集基本操作
{
    if(a[x]==0)
        return x;
    a[x]=find(a[x]);
    return a[x];
}

   做了三道题(扭

  开始学习stl模板(der~der

  给博客换了个新皮肤(鼓掌!!!!!!

  http://c.biancheng.net/cplus/80/

  stl——set

   set 中不能有重复的元素

  不能直接修改 set 容器中元素的值。

  如果要修改 set 容器中某个元素的值,正确的做法是先删除该元素,再插入新元素

  头文件 <set>

  

int main()  
{  
    set<int> s;  //创建set字典,类型为Int类型
    s.insert(1);   //向set字典中插入元素
    s.insert(2);  
    s.insert(3);  
    s.insert(1);  
    cout<<"set 的 size 值为 :"<<s.size()<<endl;   //得到set字典含有的元素数量
    cout<<"set 的 maxsize的值为 :"<<s.max_size()<<endl;  //返回整个字典开辟的空间
    cout<<"set 中的第一个元素是 :"<<*s.begin()<<endl;  //s.begin()返回第一个元素的地址
    cout<<"set 中的最后一个元素是:"<<*s.rbegin()<<endl;  //s.rbegin()返回最后一个元素地址
    cout<<"set 中 1 出现的次数是 :"<<s.count(1)<<endl;  //s.count(value)返回value在字典中出现的次数
    s.clear();  //清空字典
    if(s.empty()) 
    {  
        cout<<"set 为空 !!!"<<endl;  
    }  
    cout<<"set 的 size 值为 :"<<s.size()<<endl;  
    cout<<"set 的 maxsize的值为 :"<<s.max_size()<<endl;  
    return 0;  
}  

2021.8.7 stl

  stl——list

  使用 list 需要包含头文件 list

  

//构造函数
list<T> lstT;//list采用采用模板类实现,对象的默认构造形式:
list(beg,end);//构造函数将[beg, end)区间中的元素拷贝给本身。
list(n,elem);//构造函数将n个elem拷贝给本身。
list(const list &lst);//拷贝构造函数。
//实例
    list<int>lt;
    list<int>lt1(lt.begin(),lt.end());
    list<int>lst(10,100);
    list<int>lst1(lst); 

//插入和删除
push_back(elem);//在容器尾部加入一个元素
pop_back();//删除容器中最后一个元素
push_front(elem);//在容器开头插入一个元素
pop_front();//从容器开头移除第一个元素
insert(pos,elem);//在pos位置插elem元素的拷贝,返回新数据的位置。
insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值。
insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值。
clear();//移除容器的所有数据
erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置。
erase(pos);//删除pos位置的数据,返回下一个数据的位置。
remove(elem);//删除容器中所有与elem值匹配的元素。
//示例
lst1.push_back(1);
lst1.pop_back();
lst1.push_front(111);
lst1.pop_front();
list<int>::iterator it = lst1.insert(lst1.begin(), 10);
lst1.insert(lst1.begin(), 2, 333);
lst1.erase(++lst1.begin(), --lst1.end());
lst1.erase(lst1.begin());
lst1.remove(100);
lst1.clear();

//list大小操作
size();//返回容器中元素的个数
empty();//判断容器是否为空
resize(num);//重新指定容器的长度为num,
若容器变长,则以默认值填充新位置。
如果容器变短,则末尾超出容器长度的元素被删除。
resize(num, elem);//重新指定容器的长度为num,
若容器变长,则以elem值填充新位置。
如果容器变短,则末尾超出容器长度的元素被删除。
//示例 
int size = lst.size();
    lst.empty();
    lst.resize(15);
    lst.resize(20, 1);
    
//list赋值操作
assign(beg, end);//将[beg, end)区间中的数据拷贝赋值给本身。
assign(n, elem);//将n个elem拷贝赋值给本身。
list& operator=(const list &lst);//重载等号操作符
swap(lst);//将lst与本身的元素互换。
//示例 
lst.assign(++lst.begin(),--lst.end());
lst.swap(lst);
    
// list数据的存取
front();//返回第一个元素。
back();//返回最后一个元素。
//示例
     int fst = lst.front();
    int est = lst.back();

// list反转排序
reverse();//反转链表,比如lst包含1,3,5元素,运行此方法后,lst就包含5,3,1元素。
sort(); //list排序
//示例
lst.reverse(); //反转链表 ex:1,3,5  ->>5,3,1
lst.sort();    //排序

stl——deque

  需要包含头文件 deque

deque构造函数
deque<T> deqT;//默认构造形式
deque(beg, end);//构造函数将[beg, end)区间中的元素拷贝给本身。
deque(n, elem);//构造函数将n个elem拷贝给本身。
deque(const deque &deq);//拷贝构造函数。

deque赋值操作 
assign(beg, end);//将[beg, end)区间中的数据拷贝赋值给本身。
assign(n, elem);//将n个elem拷贝赋值给本身。
deque& operator=(const deque &deq); //重载等号操作符
swap(deq);// 将deq与本身的元素互换

 deque大小操作
deque.size();//返回容器中元素的个数
deque.empty();//判断容器是否为空
deque.resize(num);//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
deque.resize(num, elem); //重新指定容器的长度为num,若容器变长,则以elem值填充新位置,如果容器变短,则末尾超出容器长度的元素被删除。

 deque双端插入和删除操作
push_back(elem);//在容器尾部添加一个数据
push_front(elem);//在容器头部插入一个数据
pop_back();//删除容器最后一个数据
pop_front();//删除容器第一个数据

 deque数据存取
at(idx);//返回索引idx所指的数据,如果idx越界,抛出out_of_range。
operator[];//返回索引idx所指的数据,如果idx越界,不抛出异常,直接出错。
front();//返回第一个数据。
back();//返回最后一个数据

 deque插入操作
insert(pos,elem);//在pos位置插入一个elem元素的拷贝,返回新数据的位置。
insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值。
insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值。

 deque删除操作
clear();//移除容器的所有数据
erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置。
erase(pos);//删除pos位置的数据,返回下一个数据的位置

   累了woc

  不想搞了

  草

  决定了

  看两章小说学一个stl模板

  不愧是我(、

  stl——priority-queue

  https://www.cnblogs.com/GHzcx/p/8672294.html

  stl——multiset

  multiset允许容器中有重复的元素

  其余与set相同

   stl——map+multimap

  #include<map>

  暂时不会,晚点再学

  会了

  https://blog.csdn.net/OO_SEN/article/details/99981893

  眼睛疼,ctmd

2021.8.7 stl

上一篇:mybatis入门程序


下一篇:xml基础学习