用dev写了一个习题,不知道为啥运行不了,求解

时间:2023-02-24 00:22:09
#include<iostream>
#include<list>
#include<vector>
using namespace std;
bool l_equal(vector<int>&ievc,list<int>&ilist){
//比较两个容器的元素个数
if(ilist.size()!=ievc.size())
return false;
auto lb =ilist.cbegin();//list首元素
auto le =ilist.cend();  //list尾元素
auto vb =ivec.cbegin();//vector首元素
for(;lb!=le;lb++,vb++)
if(*lb!=*vb)           //元素不等,容器不等
return false;
return true; 
}
int main()
{

vector<int>ivec={1,2,3,4,5,6,7};
list<int>ilist={1,2,3,4,5,6,7};
list<int>ilist1={1,2,3,4,5};
list<int>ilist={1,2,3,4,5,6,8};
list<int>ilist={1,2,3,4,5,7,6};
cout<<1_v_equal(ievc,ilist)<<endl;
cout<<1_V_equal(ievc,ilist1)<<endl;
    cout<<1_V_equal(ievc,ilist2)<<endl;
    cout<<1_V_equal(ievc,ilist3)<<endl;
    return 0;
}
显示错误25 8 E:\9.16.cpp [Error] invalid suffix "_v_equal" on integer constant
26 8 E:\9.16.cpp [Error] invalid suffix "_V_equal" on integer constant
27 11 E:\9.16.cpp [Error] invalid suffix "_V_equal" on integer constant
28 11 E:\9.16.cpp [Error] invalid suffix "_V_equal" on integer constant
E:\9.16.cpp In function 'bool l_equal(std::vector<int>&, std::list<int>&)':
9 8 E:\9.16.cpp [Error] 'lb' does not name a type
10 8 E:\9.16.cpp [Error] 'le' does not name a type
11 8 E:\9.16.cpp [Error] 'vb' does not name a type
12 8 E:\9.16.cpp [Error] 'lb' was not declared in this scope
12 12 E:\9.16.cpp [Error] 'le' was not declared in this scope
12 20 E:\9.16.cpp [Error] 'vb' was not declared in this scope
E:\9.16.cpp In function 'int main()':
20 32 E:\9.16.cpp [Error] in C++98 'ivec' must be initialized by constructor, not by '{...}'
20 32 E:\9.16.cpp [Error] could not convert '{1, 2, 3, 4, 5, 6, 7}' from '<brace-enclosed initializer list>' to 'std::vector<int>'
21 31 E:\9.16.cpp [Error] in C++98 'ilist' must be initialized by constructor, not by '{...}'
21 31 E:\9.16.cpp [Error] could not convert '{1, 2, 3, 4, 5, 6, 7}' from '<brace-enclosed initializer list>' to 'std::list<int>'
22 28 E:\9.16.cpp [Error] in C++98 'ilist1' must be initialized by constructor, not by '{...}'
22 28 E:\9.16.cpp [Error] could not convert '{1, 2, 3, 4, 5}' from '<brace-enclosed initializer list>' to 'std::list<int>'
23 11 E:\9.16.cpp [Error] redeclaration of 'std::list<int> ilist'
21 11 E:\9.16.cpp [Error] 'std::list<int> ilist' previously declared here
24 11 E:\9.16.cpp [Error] redeclaration of 'std::list<int> ilist'
21 11 E:\9.16.cpp [Error] 'std::list<int> ilist' previously declared here
25 18 E:\9.16.cpp [Error] 'ievc' was not declared in this scope
27 26 E:\9.16.cpp [Error] 'ilist2' was not declared in this scope
28 26 E:\9.16.cpp [Error] 'ilist3' was not declared in this scope

1 个解决方案

#1


#include <iostream>
#include <list>
#include <vector>
using namespace std;
bool l_equal(vector <int> &ievc, list<int> &ilist) {
    //比较两个容器的元素个数
    if (ilist.size()!=ievc.size())
        return false;
    auto lb =ilist.cbegin();//list首元素
    auto le =ilist.cend();  //list尾元素
    auto vb =ivec.cbegin();//vector首元素
    for(;lb!=le;lb++,vb++)
        if(*lb!=*vb)           //元素不等,容器不等
            return false;
    return true;
}
int main() {
    vector<int> ivec ={1,2,3,4,5,6,7};
    list<int>  ilist ={1,2,3,4,5,6,7};
    list<int>  ilist1={1,2,3,4,5};
    list<int>  ilist2={1,2,3,4,5,6,8};
    list<int>  ilist3={1,2,3,4,5,7,6};
    cout<<l_equal(ievc,ilist )<<endl;
    cout<<l_equal(ievc,ilist1)<<endl;
    cout<<l_equal(ievc,ilist2)<<endl;
    cout<<l_equal(ievc,ilist3)<<endl;
    return 0;
}

关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

如果想从A变成B的话,到我的资源 http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”

#1


#include <iostream>
#include <list>
#include <vector>
using namespace std;
bool l_equal(vector <int> &ievc, list<int> &ilist) {
    //比较两个容器的元素个数
    if (ilist.size()!=ievc.size())
        return false;
    auto lb =ilist.cbegin();//list首元素
    auto le =ilist.cend();  //list尾元素
    auto vb =ivec.cbegin();//vector首元素
    for(;lb!=le;lb++,vb++)
        if(*lb!=*vb)           //元素不等,容器不等
            return false;
    return true;
}
int main() {
    vector<int> ivec ={1,2,3,4,5,6,7};
    list<int>  ilist ={1,2,3,4,5,6,7};
    list<int>  ilist1={1,2,3,4,5};
    list<int>  ilist2={1,2,3,4,5,6,8};
    list<int>  ilist3={1,2,3,4,5,7,6};
    cout<<l_equal(ievc,ilist )<<endl;
    cout<<l_equal(ievc,ilist1)<<endl;
    cout<<l_equal(ievc,ilist2)<<endl;
    cout<<l_equal(ievc,ilist3)<<endl;
    return 0;
}

关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

如果想从A变成B的话,到我的资源 http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”