本文整理汇总了C++中map_type::insert方法的典型用法代码示例。如果您正苦于以下问题:C++ map_type::insert方法的具体用法?C++ map_type::insert怎么用?C++ map_type::insert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类map_type
的用法示例。
在下文中一共展示了map_type::insert方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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
}
示例2: operator
void SiblingCoupling::operator()
(const MeshBase::const_element_iterator & range_begin,
const MeshBase::const_element_iterator & range_end,
processor_id_type p,
map_type & coupled_elements)
{
LOG_SCOPE("operator()", "SiblingCoupling");
for (const auto & elem : as_range(range_begin, range_end))
{
std::vector<const Elem *> active_siblings;
const Elem * parent = elem->parent();
if (!parent)
continue;
#ifdef LIBMESH_ENABLE_AMR
parent->active_family_tree(active_siblings);
#endif
for (const Elem * sibling : active_siblings)
if (sibling->processor_id() != p)
coupled_elements.insert
(std::make_pair(sibling, _dof_coupling));
}
}
示例3: 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;
}
示例4: if
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;
}
}
示例5: operator
KOKKOS_INLINE_FUNCTION
void operator()(uint32_t i, value_type & v) const
{
const uint32_t key = Near ? i/collisions : i%(inserts/collisions);
typename map_type::insert_result result = map.insert(key,i);
v.failed_count += !result.failed() ? 0 : 1;
v.max_list = result.list_position() < v.max_list ? v.max_list : result.list_position();
}
示例6: parseUrlEncodedParams
static bool parseUrlEncodedParams(char const *str,map_type ¶ms)
{
// Parse a string in format key1=value1&key2=value2&...
// where keys and values are url-encoded using %XX escapes.
// For delimiting key=value pairs, either '&' or ';' may be used.
// If the same key appears multiple times, only the last one is
// stored in the map.
ASSERT( str );
while( *str ) {
while( *str == ';' || *str == '&' ) {
str++;
}
if( !*str ) {
break;
}
std::pair<std::string,std::string> keyval;
size_t len = strcspn(str,"=&;");
if( !len ) {
return false;
}
if( !urlDecode(str,len,keyval.first) ) {
return false;
}
str += len;
if( *str == '=' ) {
str++;
len = strcspn(str,"&;");
if( !urlDecode(str,len,keyval.second) ) {
return false;
}
str += len;
}
// insert_result is a pair with an iterator pointing to an
// existing conflicting member and a bool indicating success
std::pair<typename map_type::iterator,bool> insert_result =
params.insert(keyval);
if( !insert_result.second ) {
// key already in params
ASSERT( insert_result.first->first == keyval.first );
insert_result.first->second = keyval.second;
}
}
return true;
}
示例7: 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();
}
}
示例8: OccupationInfo
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;
}
示例9: get_local
inline class_id class_id_map::get_local(type_id const& type)
{
std::pair<map_type::iterator, bool> result = m_classes.insert(
std::make_pair(type, 0));
if (result.second)
result.first->second = m_local_id++;
assert(m_local_id >= local_id_base);
return result.first->second;
}
示例10: allocate_class_id
LUABIND_API class_id allocate_class_id(type_id const& cls)
{
typedef std::map<type_id, class_id> map_type;
static map_type registered;
static class_id id = 0;
std::pair<map_type::iterator, bool> inserted = registered.insert(
std::make_pair(cls, id));
if (inserted.second)
++id;
return inserted.first->second;
}
示例11: listen
size_t listen(dht::DhtRunner& node, std::string chain, map_type& map)
{
std::future<size_t> token = node.listen(chain,
[&map](const std::vector<std::shared_ptr<dht::Value>>& values)
{
// For every value found...
for (const auto& value : values)
{
// Unpack then register and display it, if it's a new value.
std::string content = value->unpack<std::string>();
if(!map.count(content))
{
map.insert(std::make_pair(content, get_timestamp()));
disp(content);
}
}
// Continue lookup until no values are left.
return true;
});
if(token.wait_for(std::chrono::seconds(1)) != std::future_status::ready)
{
verbose("Warning: Could not create a listener since 1000ms.");
verbose(" Trying again for 30s...");
if(token.wait_for(std::chrono::seconds(30))
!= std::future_status::ready)
verbose("Error: Failure.");
else
verbose(" Done.");
}
auto v = token.get();
verbose("Starting listening to "
+ chain
+ " with token "
+ std::to_string(v) + ".");
return v;
}
示例12: put
inline void class_id_map::put(class_id id, type_id const& type)
{
assert(id < local_id_base);
std::pair<map_type::iterator, bool> result = m_classes.insert(
std::make_pair(type, 0));
assert(
result.second
|| result.first->second == id
|| result.first->second >= local_id_base
);
if (!result.second && result.first->second >= local_id_base)
{
--m_local_id;
}
result.first->second = id;
assert(m_local_id >= local_id_base);
}
示例13: new_operation
inline operation operation_sequence::new_operation(int id, int error_code)
{
using namespace std;
if ( error_code < 0 ||
(error_code > BOOST_IOSTREAMS_TEST_MAX_OPERATION_ERROR &&
error_code != INT_MAX) )
{
throw runtime_error( string("The error code ") +
lexical_cast<string>(error_code) +
" is out of range" );
}
if (last_executed_ != INT_MIN)
throw runtime_error( "Operations in progress; call reset() "
"before creating more operations" );
map_type::const_iterator it = operations_.find(id);
if (it != operations_.end())
throw runtime_error( string("The operation ") +
lexical_cast<string>(id) +
" already exists" );
operation op(*this, id, error_code);
operations_.insert(make_pair(id, ptr_type(op.pimpl_)));
return op;
}
示例14: register_parser
bool register_parser(osmium::io::file_format format, create_parser_type create_function) {
if (! m_callbacks.insert(map_type::value_type(format, create_function)).second) {
return false;
}
return true;
}
示例15: operator
KOKKOS_INLINE_FUNCTION
void operator()(size_type i) const
{
if ( m_src.valid_at(i) )
m_dst.insert(m_src.key_at(i), m_src.value_at(i));
}