C++关于vector的问题

问题要求是判断两个vector在不考虑重复元素和顺序的情况下是否相等,我想先去重从小到大排列再分辨于是写了如下的程序,但是却没有办法排列,请问这是为什么?#include... 问题要求是判断两个vector在不考虑重复元素和顺序的情况下是否相等,我想先去重从小到大排列再分辨于是写了如下的程序,但是却没有办法排列,请问这是为什么?#include"stdafx.h"
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;

int main()
{
bool same_vec(vector<int> A, vector<int> B);
int S; //create a variable for cin
vector<int> A, B; // create vector A,B

cout << "Please input vector A, and ended by a character" << endl; // give a hint to stop reading
while (cin >> S); // give value to variable
A.push_back(S);
sort(A.begin(), A.end());
A.erase(unique(A.begin(), A.end()), A.end()); //delete the repeated elements
cin.clear(); // clear for a new loop.
cin.ignore();
sort(A.begin(), A.end());

cout << "Please input vector B, and ended by a character" << endl;
while (cin >> S);
B.push_back(S);
sort(B.begin(), B.end());
B.erase(unique(B.begin(), B.end()), B.end());
cin.clear(); // same as vector A.

if (A==B) // Test two vectors.
cout << "vector A,B are identical";
else
cout << "vector A,B are not identical";

return 0;
}
展开
 我来答
hatianxiao
2017-03-04 · TA获得超过2046个赞
知道大有可为答主
回答量:2295
采纳率:77%
帮助的人:1252万
展开全部
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;

int main()
{
//bool same_vec(vector<int> A, vector<int> B);
int S; //create a variable for cin
vector<int> A, B; // create vector A,B

cout << "Please input vector A, and ended by a character" << endl; // give a hint to stop reading
while (cin >> S) // give value to variable
A.push_back(S);
sort(A.begin(), A.end());
A.erase(unique(A.begin(), A.end()), A.end()); //delete the repeated elements
cin.clear(); // clear for a new loop.
cin.ignore();
sort(A.begin(), A.end());
cout << "Please input vector B, and ended by a character" << endl;
while (cin >> S)
B.push_back(S);
sort(B.begin(), B.end());
B.erase(unique(B.begin(), B.end()), B.end());
cin.clear(); // same as vector A.
cin.ignore();
if (A == B) // Test two vectors.
cout << "vector A,B are identical";
else
cout << "vector A,B are not identical";
cin.get();
cin.get();
return 0;
}
你的习惯不好,要注意使用{},你的while循环都出了这个问题,你多写了“;”,如果使用{}就不太可能这样,然后就是底下少了一句:cin.ignore();为了看到结果,我增加了
cin.get();
cin.get();
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式