📜  为用户定义数据类型设置的C++

📅  最后修改于: 2021-05-30 05:57:32             🧑  作者: Mango

C++ STL集是一种数据结构,用于按升序或降序存储唯一值。默认情况下,我们可以使用它仅存储系统定义的数据类型(例如,int,float,double,pair等)。

而且,如果我们要将用户定义的数据类型存储在一个集合(例如结构)中,则编译器将显示一条错误消息。那是因为集合的属性,所以集合中保留的值必须是升序或降序。而且这样做时,编译器无法比较两个结构(因为它们是用户定义的),这就是为什么编译器向我们显示错误消息的原因。
因此,为了将结构存储在一组中,需要设计一些比较函数。下面给出了它的实现:

例子:

Input  : 110 102 101 115
Output : 101 102 110 115

解释:
在这里,我们向集合中插入一个随机列表,然后在输出集合时,列表将根据我们创建的比较函数以升序排序。

Input  : 3  2  34   0 76 
Output : 0  2   3  34 76
// CPP implementation to use 
// user-defined data type in
// structures
#include
using namespace std;
  
// Structure definition
struct Test {
    int id;
      
    // This function is used by set to order
    // elements of Test.
    bool operator<(const Test& t) const
    {
        return (this->id < t.id);
    }
};
  
// Driver method
int main()
{
    // put values in each 
    // structure define below.
    Test t1 = { 110 }, t2 = { 102 }, 
         t3 = { 101 }, t4 = { 115 };
  
    // define a set having 
    // structure as its elements.
    set s; 
      
    // insert structure in set
    s.insert(t1); 
    s.insert(t2);
    s.insert(t3);
    s.insert(t4);
      
    // define an iterator to iterate the whole set.
    set::iterator it; 
      
    for (it = s.begin(); it != s.end(); it++)
    {
        // print in ascending order as required.
        cout << (*it).id << endl; 
    }
      
    return 0;
}

输出:

101
102
110
115

应用:
a)在按排序顺序打印所有不同的结构时非常有用。
b)在结构的排序列表中插入新结构。

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”