当前位置:首页 > 编程笔记 > 正文
已解决

C++:vector里插入pair

来自网友在路上 174874提问 提问时间:2023-09-22 11:48:01阅读次数: 74

最佳答案 问答题库748位专家为你答疑解惑

1.初始化

vector<pair<int,int>> res;

 res的声明:表示建立一个vector容器,容器里面放的是pair<int, int>类型的变量。

2.添加元素

    以下变量名res皆表示一个 vector<pair<int,int>>类型的容器。

1)利用push_back和强转类型进行添加元素。

res.push_back(pair<int,int>(10,50));//往容器的最后一个位置里插入(10, 50)

2)利用emplace_back进行添加元素(推荐)

/*相比push_back, emplace_back功能更加强大不需要显式强制转换类型。*/
 res.emplace_back(1, 100);//往容器的最后一个位置插入(1, 100)

3.访问

    利用res[i].firstres[i].second进行访问

res.emplace_back(1, 100);
res.emplace_back(2, 200);
cout<<res[0].first<<" "<<res[0].second<<endl;//1, 100
cout<<res[1].first<<" "<<res[2].second<<endl;//2, 200

4.排序

    利用sort(res.begin(), res.end())进行排序。
默认规则: 先根据pair.first进行升序排序,如果pair.first相同,再根据pair.second进行升序排序

#include<bits/stdc++.h>
using namespace std;


int main(){
    vector<pair<int, int>> res;
    res.emplace_back(2, 0);//往容器里添加(2, 0)
    res.emplace_back(4, 1);//往容器里添加(4, 1)
    res.emplace_back(1, 2);
    res.emplace_back(2, 3);
    res.emplace_back(5, 4);
    res.emplace_back(2, -1);
  
 /*
    排序前
    2 0
    4 1
    1 2
    2 3
    5 4
    2 -1
    */
    sort(res.begin(), res.end()); 
    /*先根据first进行升序排序,如果first相同,则按照second进行升序排序。*/
    for(auto x : res){
        cout<<x.first<<" "<<x.second<<endl;
    }
  
 /*
    排序后
    1 2
    2 -1
    2 0
    2 3
    4 1
    5 4
    */
    return 0;
}

扩展

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"C++:vector里插入pair":http://eshow365.cn/6-11396-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!