真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

set,map相關(guān)操作

1、set的基本操作

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、網(wǎng)站制作、左權(quán)網(wǎng)絡(luò)推廣、小程序開發(fā)、左權(quán)網(wǎng)絡(luò)營(yíng)銷、左權(quán)企業(yè)策劃、左權(quán)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供左權(quán)建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com

(1)、set的刪除、插入操作

代碼如下:

#include
#include
using namespace std;

//set底層是紅黑樹,其所包含的元素是唯一的,集合中的元素按一定的順序排列,元素插入過(guò)程是按排序規(guī)則插入,所>
以不能指定插入位置;
int main(void){
    //set 集合 元素唯一 自動(dòng)排序(默認(rèn)情況下是從小到大) 不能按照[]方式插入元素 底層紅黑樹
    
    set set1;

    for(int i = 0; i < 5; i++){
        set1.insert(34);
        set1.insert(24);
        set1.insert(14);
        set1.insert(84);
        set1.insert(-4);
    }   
    //插入重復(fù)的元素
    set1.insert(100);
    set1.insert(100);
    set1.insert(100);
    set1.insert(100);

    set::iterator it; 
    for(it = set1.begin(); it != set1.end(); it++){
        cout<<*it<<" ";
    }
    cout<::iterator it = set1.begin();
        cout<<*it<<" ";
        set1.erase(set1.begin());
    }
    cout<

(2)、set的排序

代碼如下:

#include
#include
using namespace std;

//對(duì)于基礎(chǔ)數(shù)據(jù)可以進(jìn)行排序,復(fù)雜數(shù)據(jù)類型的排序是怎么回事?------>仿函數(shù)解決
int main(void){
    set set1; //默認(rèn)排序從小到大
    set > set2; //集合是從小到大
    set > set3; //集合從大到小的輸出;

    for(int i = 0; i < 5; i++){
        set3.insert(11);
        set3.insert(45);
        set3.insert(99);
        set3.insert(77);
        set3.insert(66);
    }   

    //從大到小的排序
    set >::iterator it; 
    for(it = set3.begin(); it != set3.end(); it++){
        cout<<*it<<" ";
    }   
    cout<

(3)、set中為復(fù)雜數(shù)據(jù)類型時(shí)的排序

代碼如下:

#include
#include
#include
using namespace std;

class Student{
    public:
        Student(const char *name, int age){
            strcpy(this->name, name);
            this->age = age;
        }
    public:
        char name[32];
        int age;

};

//仿函數(shù):重載了(),
struct FunStudent{
    bool operator()(const Student &left, const Student &right){
        if(left.age < right.age){ //左邊的小,就返回為真!!從小到大進(jìn)行排序
            return true;
        }else{
            return false;
        }
    }
};
int main(void){
/*  
    Student s1("s1", 31);
    Student s2("s2", 22);
    Student s3("s3", 55);
    Student s4("s4", 11);
    Student s5("s5", 31); //如果2個(gè)31歲,能插入成功嗎?
    //如何知道插入的結(jié)果,看函數(shù)的返回值
    
    set set1; //集合中插入的是學(xué)生類型(復(fù)雜數(shù)據(jù)類型),會(huì)調(diào)用這個(gè)仿函數(shù)
    set1.insert(s1);
    set1.insert(s2);
    set1.insert(s3);
    set1.insert(s4);
    set1.insert(s5);

    set::iterator it;
    for(it = set1.begin(); it != set1.end(); it++){
        cout<age<<" "<name< set1; //集合中插入的是學(xué)生類型(復(fù)雜數(shù)據(jù)類型),會(huì)調(diào)用這個(gè)仿函數(shù)
    pair::iterator, bool> pair1 = set1.insert(s1);
    if(pair1.second == true){ //insert()的返回值是pair(對(duì)組)類型;
        cout<<"插入s1成功"<::iterator, bool> pair5 = set1.insert(s5);
    if(pair5.second == true){
        cout<<"插入s1成功"<::iterator it;
    for(it = set1.begin(); it != set1.end(); it++){
        cout<age<<" "<name<

(4)、set中迭代器的使用

代碼如下:

#include
#include
#include
using namespace std;


//返回值為pair的類型要學(xué)會(huì)使用;
int main(void){
    set set1;

    for(int i = 0; i < 10; i++){
        set1.insert(i+1);
    }   

    set::iterator it; 
    for(it = set1.begin(); it != set1.end(); it++){
        cout<<*it<<" "; 
    }   
    cout<::iterator it0 = set1.find(5);
    cout<<"it0:"<<*it0<::iterator it1 = set1.lower_bound(5);  //大于等于5的元素的迭代器的位置
    cout<<"it1:"<<*it1<::iterator, set::iterator> mypair = set1.equal_range(5); //函數(shù)的返回值為對(duì)組
    cout<<*mypair.first<

2、multiset的基本操作

代碼如下:

#include
#include
using namespace std;

int main(void){
    multiset set1;
    int tmp = 0;

    cout<<"請(qǐng)輸入multiset集合中的值:";
    cin>>tmp;

    while(tmp != 0){ 
        set1.insert(tmp);
        cout<<"請(qǐng)輸入multiset集合中的值:";
        cin>>tmp;
    }   

    multiset::iterator it; 
    for(it = set1.begin(); it != set1.end(); it++){
        cout<<*it<<" ";
    }   
    cout<::iterator it = set1.begin();
        cout<<*it<<" ";
        set1.erase(it);
    }
    cout<

3、map的基本操作

(1)、map元素的添加、遍歷、刪除

代碼如下:

#include
#include
#include
using namespace std;

//map元素的添加、遍歷、刪除
int main(void){
    map map1;
    //因?yàn)閙ap是key-value結(jié)構(gòu),所以可以做成pair(對(duì)組)
    //初始化map:
    //方法1、
    map1.insert(pair(1, "teacher01"));
    map1.insert(pair(2, "teacher02"));
    //方法2、
    map1.insert(make_pair(3, "teacher03"));
    map1.insert(make_pair(4, "teacher04"));
    //方法3、
    map1.insert(map::value_type(5, "teacher05"));
    map1.insert(map::value_type(6, "teacher06"));
    //方法4、
    map1[7] = "teacher07";
    map1[8] = "teacher08";


    //容器的遍歷
    map::iterator it; 
    for(it = map1.begin(); it != map1.end(); it++){
        cout<first<<" "<second<::iterator it = map1.begin();
        cout<first<<" "<second<

(2)、map中4種初始化的分析

代碼如下:

#include
#include
using namespace std;

//前三種初始化方法的返回值都為:pair(iterator, bool)
//插入四中方法的異同
//結(jié)論:前三種方法,若key已經(jīng)存在,此時(shí)在進(jìn)行插入,將會(huì)報(bào)錯(cuò);
//方法4、若key已經(jīng)存在,則修改;
int main(void){
    map map1;
    //方法1、
    pair::iterator, bool>  mypair1 = map1.insert(pair(1, "teacher01"));
    map1.insert(pair(2, "teacher02"));
    //方法2、
    pair::iterator, bool>  mypair3 = map1.insert(make_pair(3, "teacher03"));
    map1.insert(make_pair(4, "teacher04"));
    //方法3、
    pair::iterator, bool>  mypair5 = map1.insert(map::value_type(5, "tea
cher05"));
    if(mypair5.second != true){
        cout<<"key 5插入失敗"<first<<" "<second<::iterator, bool>  mypair6 = map1.insert(map::value_type(5, "tea
cher06"));
    if(mypair6.second != true){
        cout<<"key 5插入失敗"<first<<" "<second<::iterator it;
    for(it = map1.begin(); it != map1.end(); it++){
        cout<first<<"\t"<second<

(3)、map查找

代碼如下:

#include
#include
using namespace std;

int main(void){
    map map1;
    //因?yàn)閙ap是key-value結(jié)構(gòu),所以可以做成pair(對(duì)組)
    //初始化map:
    //方法1、
    map1.insert(pair(1, "teacher01"));
    map1.insert(pair(2, "teacher02"));
    //方法2、
    map1.insert(make_pair(3, "teacher03"));
    map1.insert(make_pair(4, "teacher04"));
    //方法3、
    map1.insert(map::value_type(5, "teacher05"));
    map1.insert(map::value_type(6, "teacher06"));
    //方法4、
    map1[7] = "teacher07";
    map1[8] = "teacher08";


    //容器的遍歷
    map::iterator it; 
    for(it = map1.begin(); it != map1.end(); it++){
        cout<first<<" "<second<::iterator it2 = map1.find(2);
    if(it2 == map1.end()){
        cout<<"key 100的值不存在"<first<<"\t"<second<::iterator, map::iterator> mypair = map1.equal_range(5);  //此時(shí)返回2個(gè)迭代器,形成一個(gè)pair(對(duì)組)    
    //第一個(gè)迭代器,是>=5的位置
    //第二個(gè)迭代器是 >5的位置
    //使用第一個(gè)迭代器
    if(mypair.first == map1.end()){
        cout<<"第一個(gè)迭代器,是>=5的位置不存在"<first<<"\t"<second<5的位置不存在"<first<<"\t"<second<

4、multimap的基本操作

代碼如下:

#include
#include
#include
using namespace std;

//multimap的重要應(yīng)用場(chǎng)景:數(shù)據(jù)分組;
class Person{
    public:
        string name;
        int    age;
        string tel;
        double saly;
};

int main(void){
    Person p1, p2, p3, p4, p5; 
    p1.name = "王1";
    p1.age = 31; 
    p2.name = "王2";
    p2.age = 32; 
    p3.name = "張3";
    p3.age = 33; 
    p4.name = "張4";
    p4.age = 34; 
    p5.name = "趙5";
    p5.age = 35; 
    multimap map1;
    //sale部門
    map1.insert(make_pair("sale", p1));
    map1.insert(make_pair("sale", p2));
    //development
    map1.insert(make_pair("development", p3));
    map1.insert(make_pair("development", p4));
    //financial
    map1.insert(make_pair("Financial", p5));

    multimap::iterator it;
    for(it = map1.begin(); it != map1.end(); it++){
        //將age=32的人,名字更改為name32;
        if(it->second.age == 32){
            it->second.name = "name32";
        }
        cout<first<<"\t"<second.name<::iterator it1 = map1.find("development");   
    int tag = 0;
    while(it1 != map1.end() && tag < num){
        cout<first<<"\t"<second.name<


本文題目:set,map相關(guān)操作
本文URL:http://weahome.cn/article/ipeicp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部