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;
}
改成以下这样就没问题了:
#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;
} 谢谢您的回答。但是出问题是ma.insert(a.begin(),a.end());这一句。 编译时无论如何都通不过,英文错误是构造函数不接受这样的参数
页:
[1]