STL_map——map::empty

本文介绍了一种使用C++标准库中的map容器的方法来判断其是否为空,并通过实例演示了如何利用成员函数empty()来实现这一目的。
Reference:
Tests if a map is empty.

Function:
bool empty( ) const;

Return Value:
true if the map is empty; false if the map is nonempty.

Example:
#include <map>
#include <iostream>

int main( )
{
   using namespace std;
   map <int, int> m1, m2;
   int i;
   typedef pair <int, int> Int_Pair;
   m1.insert ( Int_Pair ( 1, 1 ) );

   if ( m1.empty( ) )
      cout << "The map m1 is empty." << endl;
   else
      cout << "The map m1 is not empty." << endl;

   if ( m2.empty( ) )
      cout << "The map m2 is empty." << endl;
   else
      cout << "The map m2 is not empty." << endl;
}

Output:
The map m1 is not empty.
The map m2 is empty.
// 按车道序列号排序 (lane_seq从左到右递增) std::sort(section_lanes.begin(), section_lanes.end(), [](ConstLaneInfo a, ConstLaneInfo b) { return a->lane_seq < b->lane_seq; }); /usr/include/c++/9/bits/stl_algo.h:1973:25: required from ‘void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<cem::fusion::navigation::SdNavigationHighway::GetEmergencyLaneInfo()::<lambda(ConstLaneInfo, ConstLaneInfo)> >]’ /usr/include/c++/9/bits/stl_algo.h:4905:18: required from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >; _Compare = cem::fusion::navigation::SdNavigationHighway::GetEmergencyLaneInfo()::<lambda(ConstLaneInfo, ConstLaneInfo)>]’ modules/perception/env/src/lib/sd_navigation/SdNavigationHighway.cpp:1974:16: required from here /usr/include/c++/9/bits/stl_heap.h:225:29: error: assignment of read-only location ‘__first.__gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >::operator+(__holeIndex).__gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >::operator*()’ 225 | *(__first + __holeIndex) = _GLIBCXX_MOVE(*(__first + __secondChild)); | ^ /usr/include/c++/9/bits/stl_heap.h:231:29: error: assignment of read-only location ‘__first.__gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >::operator+(__holeIndex).__gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >::operator*()’ 231 | *(__first + __holeIndex) = _GLIBCXX_MOVE(*(__first | ^ In file included from /usr/include/c++/9/bits/stl_tree.h:63, from /usr/include/c++/9/map:60, from modules/perception/env/src/lib/sd_navigation/SdNavigationHighway.h:4, from modules/perception/env/src/lib/sd_navigation/SdNavigationHighway.cpp:1: /usr/include/c++/9/bits/stl_algobase.h: In instantiation of ‘_BI2 std::__copy_move_backward_a(_BI1, _BI1, _BI2) [with bool _IsMove = true; _BI1 = const cem::message::env_model::LaneInfo* const*; _BI2 = const cem::message::env_model::LaneInfo* const*]’: /usr/include/c++/9/bits/stl_algobase.h:617:5: required from ‘_BI2 std::__copy_move_backward_a2(_BI1, _BI1, _BI2) [with bool _IsMove = true; _BI1 = __gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >; _BI2 = __gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >]’ /usr/include/c++/9/bits/stl_algobase.h:686:48: required from ‘_BI2 std::move_backward(_BI1, _BI1, _BI2) [with _BI1 = __gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >; _BI2 = __gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >]’ /usr/include/c++/9/bits/stl_algo.h:1856:8: required from ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<cem::fusion::navigation::SdNavigationHighway::GetEmergencyLaneInfo()::<lambda(ConstLaneInfo, ConstLaneInfo)> >]’ /usr/include/c++/9/bits/stl_algo.h:1890:25: required from ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<cem::fusion::navigation::SdNavigationHighway::GetEmergencyLaneInfo()::<lambda(ConstLaneInfo, ConstLaneInfo)> >]’ /usr/include/c++/9/bits/stl_algo.h:1976:31: required from ‘void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<cem::fusion::navigation::SdNavigationHighway::GetEmergencyLaneInfo()::<lambda(ConstLaneInfo, ConstLaneInfo)> >]’ /usr/include/c++/9/bits/stl_algo.h:4905:18: required from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<const cem::message::env_model::LaneInfo* const*, std::vector<const cem::message::env_model::LaneInfo* const> >; _Compare = cem::fusion::navigation::SdNavigationHighway::GetEmergencyLaneInfo()::<lambda(ConstLaneInfo, ConstLaneInfo)>]’ modules/perception/env/src/lib/sd_navigation/SdNavigationHighway.cpp:1974:16: required from here /usr/include/c++/9/bits/stl_algobase.h:606:37: error: no matching function for call to ‘std::__copy_move_backward<true, true, std::random_access_iterator_tag>::__copy_move_b(const cem::message::env_model::LaneInfo* const*&, const cem::message::env_model::LaneInfo* const*&, const cem::message::env_model::LaneInfo* const*&)’ 605 | return std::__copy_move_backward<_IsMove, __simple, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | _Category>::__copy_move_b(__first, | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ 607 | __last, | ~~~~~~~ 608 | __result); | ~~~~~~~~~ /usr/include/c++/9/bits/stl_algobase.h:577:2: note: candidate: ‘template<class _Tp> static _Tp* std::__copy_move_backward<_IsMove, true, std::random_access_iterator_tag>::__copy_move_b(const _Tp*, const _Tp*, _Tp*) [with _Tp = _Tp; bool _IsMove = true]’ 577 | __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) | ^~~~~~~~~~~~~ /usr/include/c++/9/bits/stl_algobase.h:577:2: note: template argument deduction/substitution failed: /usr/include/c++/9/bits/stl_algobase.h:606:37: note: deduced conflicting types for parameter ‘_Tp’ (‘const cem::message::env_model::LaneInfo*’ and ‘const cem::message::env_model::LaneInfo* const’) 605 | return std::__copy_move_backward<_IsMove, __simple, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | _Category>::__copy_move_b(__first, | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ 607 | __last, | ~~~~~~~ 608 | __result); | ~~~~~~~~~
最新发布
08-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值