houshuangquan 发表于 2016-7-30 09:36:34

C++ STL 问题

#include<iostream>
#include<set>
using namespace std;
int main()
{
        set<int> a;
        multiset<int> ma;
       
        a.insert(60);
        a.insert(-1);
        a.insert(3000);
        a.insert(60);

        cout<<a.count(3000)<<endl;
       
        cout<<"显示set中的元素内容"<<endl;
        PrintContents(a);
       
        //下面的语句为何编译报错?
        //ma.insert(a.begin(),a.end());
        ma.insert(3000);
        ma.insert(ma.end(),3);
       
        ......       
        return 0;
}

陌雨 发表于 2016-7-30 11:03:37

改成以下这样就没问题了:

#include<iostream>
#include<set>
using namespace std;
int main(void)
{
        set<int> a;
        multiset<int> ma;
       
        a.insert(60);
        a.insert(-1);
        a.insert(3000);
        a.insert(60);
        cout << a.count(3000) << endl;
        cout << "显示set中的元素内容" << endl;
        set<int >::iterator it = a.begin();
        while (it != a.end())
        {
                cout << (*it) << endl;
                ++it;
        }
        it = a.begin();
        while (it != a.end())
        {
                ma.insert((*it));
                ++it;
        }
        ma.insert(3000);
        multiset<int>::iterator i = ma.begin();
        cout << "以下是multiset" << endl;
        while (i != ma.end())
        {
                cout << (*i) << endl;
                ++i;
        }
        getchar();
        return 0;
}

houshuangquan 发表于 2016-7-30 12:39:45

谢谢您的回答。但是出问题是ma.insert(a.begin(),a.end());这一句。

houshuangquan 发表于 2016-7-30 12:42:45

编译时无论如何都通不过,英文错误是构造函数不接受这样的参数
页: [1]
查看完整版本: C++ STL 问题