注册 登录
编程论坛 C++教室

关于 fornt_insert_iterator 问题

寂寞的一角钱 发布于 2014-04-27 23:25, 391 次点击
#include <iostream>
#include <string>
#include <iterator>
#include <vector>
#include <algorithm>

void output(const std::string& s)
{
    std::cout << s << " ";
}

int main()
{
    using namespace std;

    string s1[4] = {"fine", "fish", "fashion", "fate"};
    string s2[2] = {"busy", "bats"};
    string s3[2] = {"silly", "singers"};
    vector<string> words(4);

    copy(s1, s1+4, words.begin());
    for_each(words.begin(), words.end(), output);
    cout << endl;

    copy(s2, s2+2, back_insert_iterator< vector<string> >(words));
    for_each(words.begin(), words.end(), output);
    cout << endl;

    copy(s3, s3+2, front_insert_iterator< vector<string> >(words));  // 错误 用法与back_insert_iterator 相同吧?
    for_each(words.begin(), words.end(), output);
    cout << endl;[/color]

    copy(s3, s3+2, insert_iterator< vector<string> >(words, words.begin()));
    for_each(words.begin(), words.end(), output);
    cout << endl;
    return 0;
}
1 回复
#2
rjsp2014-04-28 11:56
// 错误 用法与back_insert_iterator 相同吧?
------ 什么错误你得说明白,以节约大家的时间。
一开始以为你说的是运行结果错误,看了半天没发现问题。
后来一想,你说的可能是编译错误,以这种思路的话,那问题就明显了,vector没有push_front成员,你不能在vector上用front_insert_iterator
1