stl-STL map关键字类型有限制吗?

问题描述

STL map关键字类型有限制吗?

STL map 的关键字key 的类型有限制吗?可以是类类型吗?

解决方案

可以是类类型,但是你的类要实现operator <

 bool operator<(const a& a1, const a& a2)
{
    if ( a1.m_a>=a2.m_a )
        return false;
    return true;
}

解决方案二:

STL的map类型
C++ STL map类型简介

时间: 2024-09-20 00:41:31

stl-STL map关键字类型有限制吗?的相关文章

c++ stl map-C++ map 关键字的问题

问题描述 C++ map 关键字的问题 std::map < type_1type_2 > data;type_1有什么要求?为什么我自定义了一个类,重载了<操作符编译时没有错误,运行去出错了.出错代码如下; std::vector > record_number;//std::vector arr = record_number[input_po]; if (arr.size() > 4) { return; } else { arr.push_back(number[0]

用STL的map和算法的find_if实现名表表示和查找功能

问题描述 用STL的map和算法的find_if实现名表表示和查找功能 #include #include #include #include using namespace std; bool older_than_20(int birthdate) { return (2016 - birthdate / 10000)>20; } int main() { maptable_item;//创建一个map类容器,用于存储名表 //创建名表 table_item["Charles"

stl map 下标-STL容器map 下标访问的问题

问题描述 STL容器map 下标访问的问题 STL容器map 下标访问的问题定义了如下的一个map 容器 Key 是int values 是一个结构体typedef struct _prostru{ int jmqnum; int bncnun; _prostru() { jmqnum=-1; bncnun=-1; }}PROSTRU; map m_pro; m_pro[1].jmqnum=5;m_pro[2].bncnum=2; 在进程中 可以用下标访问和修改 结构体中的值线程传入后 是个指针

STL中map与hash_map容器的选择收藏

这篇文章来自我今天碰到的一个问题,一个朋友问我使用map和hash_map的效率问题,虽然我也了解一些,但是我不敢直接告诉朋友,因为我怕我说错了,通过我查询一些帖子,我这里做一个总结!内容分别来自alvin_lee ,codeproject,codeguru.baidu等等! 先看看alvin_lee 朋友做的解析,我觉得还是很正确的,从算法角度阐述了他们之间的问题! 实际上这个问题不光C++会遇到,其他所有语言的标准容器的实现及选择上都是要考虑的.做应用程序你可能觉得影响不大,但是写算法或者核

c++-关于STL的map.find()问题

问题描述 关于STL的map.find()问题 #include #include using namespace std; int main( ) { map m1; map ::iterator m1_Iter; m1.insert ( pair ( 1, 20 ) ); m1.insert ( pair ( 4, 40 ) ); m1.insert ( pair ( 3, 60 ) ); m1.insert ( pair ( 2, 50 ) ); m1.insert ( pair ( 6,

从零开始_学_数据结构(五)——STL(map、set、list、vector)

STL容器   前注: STL(标准模板库)是一个C++的软件库,也是C++标准程序库的一部分. 这些容器,应该都是STL里面的一个类. vector封装数组.list封装链表.map和set封装二叉树   一.list 在不懂的时候,list可以理解为双向链表(很像,但事实上不是). (1)声明一个list对象: ①包含头文件list:#include<list> ②声明他:std::list<int> one; //声明一个list对象 ③需要注意,list位于std名称空间之

stl之map 排序

排序问题,STL中默认是采用小于号来排序的,因为设置int等类型做key,它本身支持小于号运算,在一些特殊情况,比如关键字是一个结构体,涉及到排序就会出现问题,因为它没有小于号操作,insert等函数在编译的时候过不去,下面给出两个方法解决这个问题: 第一种:小于号重载,程序举例 1 #include <map> 2 #include <string> 3 using namespace std; 4 typedef struct tagStudentInfo 5 { 6 int

STL之Map

概述 Map是标准关联式容器(associative container)之一,一个map是一个键值对序列,即(key ,value)对.它提供基于key的快速检索能力,在一个map中key值是唯一的.map提供双向迭代器,即有从前往后的(iterator),也有从后往前的(reverse_iterator). map要求能对key进行<操作,且保持按key值递增有序,因此map上的迭代器也是递增有序的.如果对于元素并不需要保持有序,可以使用hash_map. map中key值是唯一的,如果马匹

STL中map用法详解

std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道.这里说下std map内部数据的组织,std map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在std map内部所有的数据都是有序的,后边我们会见识到有序的好处. 下面举例说明什么是一对一的数据映射.比如一个班级中,每个