C++Primer第五版 练习11.17(解答)
2015-10-08 16:13
399 查看
练习11.17:假定c是一个string的multiset,v是一个string的vector,解释下面的调用。指出每个调用是否合法。
copy(v.begin(),v.end(),inserter(c,c.end()));//正确 copy(v.begin(),v.end(),back_inserter(c)); //错误 multiset没有push_back这个操作,尾插法不适合 copy(c.begin(),c.end(),inserter(v,v.end()));//正确 copy(c.begin(),c.end(),back_inserter(v));//正确
/* *C++primer(第五版) *练习11.17 *2015/10/8 *问题描述: 练习11.17:假定c是一个string的multiset,v是一个string的vector,解释下面的调用。指出每个调用是否合法。 copy(v.begin(),v.end(),inserter(c,c.end())); copy(v.begin(),v.end(),back_inserter(c)); copy(c.begin(),c.end(),inserter(v,v.end())); copy(c.begin(),c.end(),back_inserter(v)); *说明:为了看效果,需要把注释的一个一个去掉,单独看一句copy *作者:Nick Feng *邮箱:nickgreen23@163.com */ #include <iostream> #include <string> #include <set> #include <map> #include <algorithm> using namespace std; int main() { multiset<string> c = {"good","good","best","never","let","it","rest"}; vector<string> v = {"good","good","best","never","let","it","rest"}; copy(v.begin(),v.end(),inserter(c,c.end()));//正确 //copy(v.begin(),v.end(),back_inserter(c)); //错误 multiset没有push_back这个操作,尾插法不适合 //copy(c.begin(),c.end(),inserter(v,v.end()));//正确 //copy(c.begin(),c.end(),back_inserter(v));//正确 for(vector<string>::iterator it = v.begin(); it != v.end(); ++it) cout << *it << " "; cout << endl; for(multiset<string>::iterator it = c.begin(); it != c.end(); ++it) cout << *it << " "; cout << endl; return 0; }
相关文章推荐
- C++Primer第五版 练习11.16(解答)
- C++Primer第五版 11.3.1节练习
- C语言中char int转换问题
- c语言中的正则表达式regex.h
- C语言指针转换为intptr_t类型
- C++中break与continue的区别
- C语言指针操作
- C++中虚函数功能的实现机制
- (VC++) CString Format的用法
- c++泛型
- C语言输出100到999中所有的水仙花数
- c++中“::”和“->”
- C语言输出菱形
- C/C++ 笔试、面试题目大汇总(五)
- C/C++ 笔试、面试题目大汇总(四)
- C/C++ 笔试、面试题目大汇总(三)
- C/C++ 笔试、面试题目大汇总(二)
- C++ 析构函数
- 计算1到100的所有整数中9出现的次数
- 一个只学过C++的伙计转学PHP 历程