C++中迭代器end的讨论

#include<bits/stdc++.h>
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)//不能使用scanf了
#define int long long

#define loop(x,a,b) for(int x=a;x<=b;x++)
#define rloop(x,a,b) for(int x=a;x>=b;x--)

#define pii pair<int,int>
#define mem(a,x) memset(a,x,sizeof a)
#define lowbit(x) (x&(-x))

#define print(c) cout<<""#c": "<<c<<endl;
#define printt(a,b) cout<<""#a": "<<a<<'-'<<""#b": "<<b<<endl;
#define prinT(n,arr,flag) loop(i,n){if(i==0&&flag)cout<<""#arr":"<<endl;if(i!=n-1)cout<<arr[i]<<' ';else cout<<arr[i]<<endl;}
#define MAX INT_MAX
#define MIN INT_MIN
const int mod = 1e9 + 7;
const int N = 1e6 + 20;
using namespace std;
int gcd(int a, int b) { return b > 0 ? gcd(b, a % b) : a; }
int lcm(int a, int b) { return a / gcd(a, b) * b; }
void solve() {
    multiset<int> ans;
    ans.insert(9);
    ans.insert(99);
    ans.insert(123);
    printt(*ans.begin(), *ans.rbegin());
    
	deque<int> s;
    s.push_back(1), s.push_back(2), s.push_back(999);
    print(*s.end());
    
    map<int,int> m;
    m[1]=2;
    m[2]=3;
    print(m.end()->first);
    print(m.rend()->first);
}
signed main() {
    ios;
    int n = 1;
    //cin >> n;
    while (n--)solve();
}

这里给出可能有误差的结论,对于一维容器,end()就像string后面的'\0'一样,作为结尾的标记,如果要访问到末尾,我们可以直接使用ans.rbegin();

二维的话,这里只用map举例,大概率就末尾的元素;

本文仅做初步探索以满足使用需求,没有深度解析,如有补充,欢迎评论

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值