繁体   English   中英

我收到模板错误,我不确定为什么

[英]I'm receiving a template error and I'm not sure why

我被分配以下任务。 需求(简化)是...使用STL容器std :: list,std :: vector和std :: deque,演示按降序对整数进行排序。 使用std :: set创建唯一整数的数据集。 将数据集复制到其他容器。 洗净容器。 显示每个容器的内容。 使用适当的排序算法对每个容器中的数据进行排序。 重新显示每个容器的内容。 代码必须用C ++编写

这是我想出的代码,但在第20行和第30行上引发了错误

“更大的不是模板”

我敢肯定,这是一个容易解决的问题,但是我尝试的所有方法都无法正常工作。 谢谢您的帮助。

#include "stdafx.h"
#include <iostream>
#include <set>
#include <iterator>
#include <deque>
#include <list>
#include <vector>
#include <algorithm>
#include <math.h>

using namespace std;


int main()
{

    set <int, greater <int>> set1;

    set1.insert(4);
    set1.insert(5);
    set1.insert(3);
    set1.insert(6);
    set1.insert(2);
    set1.insert(5);
    set1.insert(1);

    set <int, greater <int> > ::iterator itr;
    cout << "\n/the initial set is : ";
    for (itr = set1.begin(); itr != set1.end(); ++itr)
    {
        cout << '\t' << *itr;
    }
    cout << endl;

    deque <int> deque_ex1;
    list <int> list_ex1;
    vector <int> vec_ex1;

    for (itr = set1.begin(); itr != set1.end(); ++itr)
    {
        vec_ex1.push_back(*itr);
        deque_ex1.push_back(*itr);
        list_ex1.push_back(*itr);
    }
    std::random_shuffle (vec_ex1.begin(), vec_ex1.end());
    std::random_shuffle(deque_ex1.begin(), deque_ex1.end());

    vector<int> V(list_ex1.begin(), list_ex1.end());
    std::random_shuffle(V.begin(), V.end());
    list_ex1.assign(V.begin(), V.end());

    vector <int> ::iterator itr1;
    cout << "The shuffled vector is: ";
    for (itr1 = vec_ex1.begin(); itr1 != vec_ex1.end(); ++itr1)
    {
        cout << '\t' << *itr1;
    }
    cout << endl;

    deque <int> ::iterator itr2;
    cout << "The shuffled deque is: ";
    for (itr2 = deque_ex1.begin(); itr2 != deque_ex1.end(); ++itr2)
    {
         cout << '\t' << *itr2;
    }
    cout << endl;

    list <int> ::iterator itr3;
    cout << "The shuffled list is: ";
    for (itr3 = list_ex1.begin(); itr3 != list_ex1.end(); ++itr3)
    {
        cout << '\t' << *itr3;
    }
    cout << endl;
    cout << endl;

    cout << "sorted data structures (using system defined sort function):" << endl;
    sort(vec_ex1.begin(), vec_ex1.end());
    cout << "The sorted vector is :";
    for (itr1 = vec_ex1.begin(); itr1 != vec_ex1.end(); ++itr1)
    {
        cout << '\t' << *itr1;
    }
    cout << endl;

    sort(deque_ex1.begin(), deque_ex1.end());
    cout << "The sorted Deque is: ";
    for (itr2 = deque_ex1.begin(); itr2 != deque_ex1.end(); ++itr2)
    {
        cout << '\t' << *itr2;
    }
    cout << endl;

    list_ex1.sort();
    cout << "The sorted list is: ";
    for (itr3 = list_ex1.begin(); itr3 != list_ex1.end(); ++itr3)
    {
        cout << 't' << *itr3;
    }
    cout << endl;

    return 0;
}

对于std::greater ,您需要

#include <functional>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM