社区讨论
问个问题
学术版参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mhjsjchr
- 此快照首次捕获于
- 2025/11/04 07:48 4 个月前
- 此快照最后确认于
- 2025/11/04 07:48 4 个月前
这里有两份代码:
node版:
CPP#include<bits/stdc++.h>
using namespace std;
struct node{
int t1,t2;
bool operator <(const node &x)const{
return x.t2<t2;//随便排的
}
}a[6];
map<node,int>mp;
int main(){
a[1]=node{1,1},a[2]=node{2,3},a[3]=node{2,4},a[4]=node{2,3},a[5]=node{1,3};
for(int i=1;i<=5;i++){
if(!mp[a[i]]){
cout<<i<<" ";
mp[a[i]]=1;
}
}
}
pair版:
CPP#include<bits/stdc++.h>
using namespace std;
pair<int,int>a[6];
map<pair<int,int>,int>mp;
int main(){
a[1]=make_pair(1,1),a[2]=make_pair(2,3),a[3]=make_pair(2,4);
a[4]=make_pair(2,3),a[5]=make_pair(1,3);
for(int i=1;i<=5;i++){
if(!mp[a[i]]){
cout<<i<<" ";
mp[a[i]]=1;
}
}
}
可以看到两份代码只有map的类型不同,一个是node,
一个是pair,但输出不同。
node输出1 2 3,而pair输出1 2 3 5。是怎么回事?
解疑必关。
回复
共 4 条回复,欢迎继续交流。
正在加载回复...