本文整理汇总了C++中map_type类的典型用法代码示例。如果您正苦于以下问题:C++ map_type类的具体用法?C++ map_type怎么用?C++ map_type使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了map_type类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1:
Dispatch::Handler Dispatch::code2handler( Message::type_t type )
{
typedef std::map<Message::type_t, Handler> map_type;
static map_type handlers;
if ( handlers.empty() ) {
using namespace MessageTypes;
handlers[ NameQuery ] = &Dispatch::namequery_handler;
handlers[ NameReply ] = &Dispatch::namereply_handler;
handlers[ Opponentname ] = &Dispatch::opponentname_handler;
handlers[ Receive ] = &Dispatch::receive_handler;
handlers[ Invalidmove ] = &Dispatch::invalidmove_handler;
handlers[ Inform ] = &Dispatch::inform_handler;
handlers[ Status ] = &Dispatch::status_handler;
handlers[ Points ] = &Dispatch::points_handler;
handlers[ PlayQuery ] = &Dispatch::playquery_handler;
handlers[ PlayReply ] = &Dispatch::playreply_handler;
handlers[ Give3Query ] = &Dispatch::give3query_handler;
handlers[ Terminate ] = &Dispatch::terminate_handler;
// handlers[Reset] = &Dispatch::reset_handler;
handlers[ Give3Reply ] = &Dispatch::give3reply_handler;
handlers[ PlayReply ] = &Dispatch::playreply_handler;
}
map_type::iterator resp = handlers.find( type );
if ( resp == handlers.end() ) {
LOG_PLACE() << "No handler for " << type << ".\n";
return &Dispatch::error_handler;
}
return resp->second;
}
开发者ID:luispedro,项目名称:hearts,代码行数:30,代码来源:dispatch.cpp
示例2: probe
void probe (map_type& testMap, std::string name, auto keys, auto values, size_t toFind)
{
// map_type
const int width (15);
const int precision (6);
std::cout << std::setw (width) << keys.size () << " : " << std::setw (width) << name << " : " << std::flush;
high_resolution_clock::time_point startTime = high_resolution_clock::now ();
auto itValues = begin (values);
for_each (begin (keys), end (keys), [&testMap, &itValues](size_t key)
{
testMap.insert (std::make_pair (key, (*itValues++)));
});
high_resolution_clock::time_point findTime = high_resolution_clock::now ();
size_t currFind = 0;
for (auto k : keys)
{
if (currFind >= toFind)
break;
bool exists = testMap.find (k) != testMap.end ();
if (exists)
++currFind;
}
high_resolution_clock::time_point endTime = high_resolution_clock::now ();
duration<double> time_span_insert = duration_cast<duration<double>> (findTime-startTime);
duration<double> time_span_find = duration_cast<duration<double>> (endTime-findTime);
std::cout << "time insert = " << std::fixed << std::setprecision (precision) << time_span_insert.count () << " time find = " << std::setprecision (precision) << time_span_find.count () << std::setw (width) << " found = " << std::setw (width) << currFind << std::endl;
}
开发者ID:pspe,项目名称:various,代码行数:29,代码来源:test_map_with_vector.cpp
示例3: if
void *runner(void *f)
{
string tmp = "", content = *(string *)f; //將傳過來的指標轉成string
for (int i = 0; i < content.length()+1; ++i) {
if(content[i]=='\'' && tmp!="" &&((content[i+1]>='a' && content[i+1]<='z') || (content[i+1]>='A' && content[i+1]<='Z')) ) // 單引號的前後為英文單字的
{
tmp += content[i];
continue;
}
if(content[i]>='a' && content[i] <='z')
tmp += content[i];
else if(content[i] >='A' && content[i] <= 'Z')
tmp += tolower(content[i]);
else if(tmp != "")
{
pthread_mutex_lock(&mutex); //鎖
/* critical section */
iter = m.find(tmp); //搜尋
if(iter != m.end())
iter->second++; //資料重複,所以將次數+1
else
m.insert(map_type::value_type(tmp,1)); //插入資料
pthread_mutex_unlock(&mutex); //解鎖
tmp = "";
}
}
pthread_exit(0); //結束thread
}
开发者ID:tim124058,项目名称:pthread,代码行数:33,代码来源:WordAnal.cpp
示例4: sum
/** Compute the sum of all the elements
* Implements compensated summation
*/
double sum() {
double s=0.;
for (map_type::iterator it=map.begin(),itend=map.end();it!=itend;++it) {
s += it->second;
}
return s;
}
开发者ID:kkloste,项目名称:hkgrow,代码行数:10,代码来源:hktest_mex.cpp
示例5: to_std_category
inline std::error_category const & to_std_category( boost::system::error_category const & cat )
{
if( cat == boost::system::system_category() )
{
static const std_category system_instance( &cat, 0x1F4D7 );
return system_instance;
}
else if( cat == boost::system::generic_category() )
{
static const std_category generic_instance( &cat, 0x1F4D3 );
return generic_instance;
}
else
{
typedef std::map< boost::system::error_category const *, std::unique_ptr<std_category>, cat_ptr_less > map_type;
static map_type map_;
static std::mutex map_mx_;
std::lock_guard<std::mutex> guard( map_mx_ );
map_type::iterator i = map_.find( &cat );
if( i == map_.end() )
{
std::unique_ptr<std_category> p( new std_category( &cat, 0 ) );
std::pair<map_type::iterator, bool> r = map_.insert( map_type::value_type( &cat, std::move( p ) ) );
i = r.first;
}
return *i->second;
}
}
开发者ID:boostorg,项目名称:system,代码行数:35,代码来源:std_interoperability.hpp
示例6: get
inline class_id class_id_map::get(type_id const& type) const
{
map_type::const_iterator i = m_classes.find(type);
if (i == m_classes.end() || i->second >= local_id_base)
return unknown_class;
return i->second;
}
开发者ID:neomantra,项目名称:luabind,代码行数:7,代码来源:inheritance.hpp
示例7: print
void print() const{
enterExclusive();
map_type::const_iterator iter = _item_map.begin();
for(; iter != _item_map.end(); ++iter){
iter->second->print();
}
leaveExclusive();
}
开发者ID:MIPS,项目名称:karma,代码行数:8,代码来源:statistics.hpp
示例8: get
/** Get an element and provide a default value when it doesn't exist
* This command does not insert the element into the vector
*/
double get(mwIndex index, double default_value=0.0) {
map_type::iterator it = map.find(index);
if (it == map.end()) {
return default_value;
} else {
return it->second;
}
}
开发者ID:kkloste,项目名称:hkgrow,代码行数:11,代码来源:hktest_mex.cpp
示例9: flush
void flush(){
enterExclusive();
map_type::iterator iter = _item_map.begin();
for(; iter != _item_map.end(); ++iter){
iter->second->flush();
}
leaveExclusive();
}
开发者ID:MIPS,项目名称:karma,代码行数:8,代码来源:statistics.hpp
示例10: max_index
/** Compute the max of the element values
* This operation returns the first element if the vector is empty.
*/
mwIndex max_index() {
mwIndex index=0;
double maxval=std::numeric_limits<double>::min();
for (map_type::iterator it=map.begin(),itend=map.end();it!=itend;++it) {
if (it->second>maxval) { maxval = it->second; index = it->first; }
}
return index;
}
开发者ID:kkloste,项目名称:hkgrow,代码行数:11,代码来源:hktest_mex.cpp
示例11:
void
mapper::_free_map(map_type &m) {
map_type::iterator i = m.begin();
for (; i != m.end(); i++) {
if (i->first) free((void *)i->first);
if (i->second) free((void *)i->second);
}
m.clear();
}
开发者ID:ajalkane,项目名称:rvhouse,代码行数:9,代码来源:mapper.cpp
示例12: del
static void del(map_type& cont, const key_type& key)
{
if ( cont.find(key) != cont.end() ) {
cont.erase(key);
}
else {
KeyError();
}
}
开发者ID:BackupTheBerlios,项目名称:slon,代码行数:9,代码来源:PyLibrary.cpp
示例13: remove_operation
inline void operation_sequence::remove_operation(int id)
{
using namespace std;
map_type::iterator it = operations_.find(id);
if (it == operations_.end())
throw runtime_error( string("No such operation: ") +
lexical_cast<string>(id) );
operations_.erase(it);
}
开发者ID:LocutusOfBorg,项目名称:poedit,代码行数:9,代码来源:operation_sequence.hpp
示例14: operator
KOKKOS_INLINE_FUNCTION
void operator()( size_type i ) const
{
const size_type invalid_index = map_type::invalid_index;
uint32_t list = m_map.m_hash_lists(i);
for (size_type curr = list, ii=0; curr != invalid_index; curr = m_map.m_next_index[curr], ++ii) {
printf("%d[%d]: %d->%d\n", list, ii, m_map.key_at(curr), m_map.value_at(curr));
}
}
开发者ID:00liujj,项目名称:trilinos,代码行数:10,代码来源:Kokkos_UnorderedMap_impl.hpp
示例15: get
static mapped_type get(map_type & x, const key_type & v)
{
if (x.count(v) != 0)
{
return x.at(v);
}
else
{
PyErr_SetString(PyExc_IndexError, "Index out of range");
boost::python::throw_error_already_set();
}
}
开发者ID:EnoahNetzach,项目名称:fourFs,代码行数:12,代码来源:wrappers.hpp
示例16: find_or_insert
inline OccupationInfo& find_or_insert(Point const& point, Point& mapped_point)
{
typename map_type::iterator it = map.find(point);
if (it == boost::end(map))
{
std::pair<typename map_type::iterator, bool> pair
= map.insert(std::make_pair(point, OccupationInfo()));
it = pair.first;
}
mapped_point = it->first;
return it->second;
}
开发者ID:1050676515,项目名称:ZeusMud,代码行数:12,代码来源:occupation_info.hpp
示例17: find_unreachable_objects_impl
static void find_unreachable_objects_impl(map_type const & m, map2_type & m2)
{
// scan objects for shared_ptr members, compute internal counts
{
std::cout << "... " << m.size() << " objects in m.\n";
for(map_type::const_iterator i = m.begin(); i != m.end(); ++i)
{
abt_boost::detail::sp_counted_base const * p = static_cast<abt_boost::detail::sp_counted_base const *>(i->first);
BOOST_ASSERT(p->use_count() != 0); // there should be no inactive counts in the map
m2[ i->first ];
scan_and_count(i->second.first, i->second.second, m, m2);
}
std::cout << "... " << m2.size() << " objects in m2.\n";
}
// mark reachable objects
{
open_type open;
for(map2_type::iterator i = m2.begin(); i != m2.end(); ++i)
{
abt_boost::detail::sp_counted_base const * p = static_cast<abt_boost::detail::sp_counted_base const *>(i->first);
if(p->use_count() != i->second) open.push_back(p);
}
std::cout << "... " << open.size() << " objects in open.\n";
for(open_type::iterator j = open.begin(); j != open.end(); ++j)
{
m2.erase(*j);
}
while(!open.empty())
{
void const * p = open.front();
open.pop_front();
map_type::const_iterator i = m.find(p);
BOOST_ASSERT(i != m.end());
scan_and_mark(i->second.first, i->second.second, m2, open);
}
}
// m2 now contains the unreachable objects
}
开发者ID:jbruestle,项目名称:aggregate_btree,代码行数:53,代码来源:sp_collector.cpp
示例18: del
static void del(map_type & x, const key_type & v)
{
if (x.count(v) != 0)
{
x.erase(v);
}
else
{
PyErr_SetString(PyExc_IndexError, "Index out of range");
boost::python::throw_error_already_set();
}
}
开发者ID:EnoahNetzach,项目名称:fourFs,代码行数:12,代码来源:wrappers.hpp
示例19: set
static void set(map_type & x, const key_type & v, mapped_type & m)
{
if (x.count(v) == 0)
{
x.insert(std::make_pair(v, m));
}
else
{
PyErr_SetString(PyExc_IndexError, "Value already set");
boost::python::throw_error_already_set();
}
}
开发者ID:EnoahNetzach,项目名称:fourFs,代码行数:12,代码来源:wrappers.hpp
示例20: copy
inline void dictionary::replace(std::string& key)
{
using namespace std;
string copy(key);
tolower(copy);
map_type::iterator it = map_.find(key);
if (it == map_.end())
return;
string& value = it->second;
if (!value.empty() && !key.empty() && std::isupper((unsigned char) key[0]))
value[0] = std::toupper((unsigned char) value[0]);
key = value;
return;
}
开发者ID:LocutusOfBorg,项目名称:poedit,代码行数:14,代码来源:dictionary_filter.hpp
注:本文中的map_type类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论