test_capacity.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 84 行

CPP
84
字号
/* Boost.MultiIndex test for capacity memfuns. * * Copyright 2003-2008 Joaquin M Lopez Munoz. * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) * * See http://www.boost.org/libs/multi_index for library home page. */#include "test_capacity.hpp"#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */#include "pre_multi_index.hpp"#include "employee.hpp"#include <boost/test/test_tools.hpp>using namespace boost::multi_index;void test_capacity(){  employee_set es;  es.insert(employee(0,"Joe",31,1123));  es.insert(employee(1,"Robert",27,5601));  es.insert(employee(2,"John",40,7889));  es.insert(employee(3,"Albert",20,9012));  es.insert(employee(4,"John",57,1002));  BOOST_CHECK(!es.empty());  BOOST_CHECK(es.size()==5);  BOOST_CHECK(es.size()<=es.max_size());  es.erase(es.begin());  BOOST_CHECK(!get<name>(es).empty());  BOOST_CHECK(get<name>(es).size()==4);  BOOST_CHECK(get<name>(es).size()<=get<name>(es).max_size());  es.erase(es.begin());  BOOST_CHECK(!get<as_inserted>(es).empty());  BOOST_CHECK(get<as_inserted>(es).size()==3);  BOOST_CHECK(get<as_inserted>(es).size()<=get<as_inserted>(es).max_size());  multi_index_container<int,indexed_by<sequenced<> > > ss;  ss.resize(10);  BOOST_CHECK(ss.size()==10);  BOOST_CHECK(ss.size()<=ss.max_size());  ss.resize(20);  BOOST_CHECK(ss.size()==20);  ss.resize(5);  BOOST_CHECK(ss.size()==5);  ss.resize(4);  BOOST_CHECK(ss.size()==4);  multi_index_container<int,indexed_by<random_access<> > > rs;  rs.resize(10);  BOOST_CHECK(rs.size()==10);  BOOST_CHECK(rs.size()<=rs.max_size());  BOOST_CHECK(rs.size()<=rs.capacity());  rs.resize(20);  BOOST_CHECK(rs.size()==20);  BOOST_CHECK(rs.size()<=rs.capacity());  unsigned int c=rs.capacity();  rs.resize(5);  BOOST_CHECK(rs.size()==5);  BOOST_CHECK(rs.capacity()==c);  rs.reserve(100);  BOOST_CHECK(rs.size()==5);  BOOST_CHECK(rs.capacity()>=100);  c=rs.capacity();  rs.reserve(99);  BOOST_CHECK(rs.size()==5);  BOOST_CHECK(rs.capacity()==c);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?