【发布时间】:2020-05-06 16:00:10
【问题描述】:
我有以下代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
// your code goes here
int t;
cin>>t;
while(t--)
{
string a;
string b;
cin>>a;
cin>>b;
vector<char> v1(a.begin(),a.end());
vector<char> v2(b.begin(),b.end());
sort(v1.begin(),v1.end());
sort(v2.begin(),v2.end());
vector<char> c;
auto ls = set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),c.begin());
cout<<"hello"<<endl;
cout<<ls-c.begin()<<endl;
cout<<c.size()<<endl;
}
return 0;
}
set_intersection 线之后什么都没有打印,甚至与相交线没有关系的“hello”也不打印,为什么??
【问题讨论】:
-
typedef long long ll;- 为什么?您是否试图故意为未来的读者混淆您的代码? -
这是一个有竞争力的编程代码,我已经阅读了很多文章来使用它来减少编码时间。这样做可以吗?
-
@VamsiMohan 好吧,没有什么能阻止你这样做,它可以节省几秒钟的打字时间。但请记住,在实际的实际编程中,这些被认为是不好的做法。如果你正在做有竞争力的编程来学习常规编程,我会避免那些。
标签: c++ stl set-intersection