本文整理汇总了C++中std::forward_list::empty方法的典型用法代码示例。如果您正苦于以下问题:C++ forward_list::empty方法的具体用法?C++ forward_list::empty怎么用?C++ forward_list::empty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类std::forward_list
的用法示例。
在下文中一共展示了forward_list::empty方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: operator
inline int operator () (EArgs&&... args) // O(n)
{
if(slots.empty())
return default_return_value;
auto it = slots.cbegin(), end = slots.cend();
auto prev = slots.cbefore_begin();
while(it != end)
{
try
{
(it->second)(std::forward<EArgs>(args)...);
prev = it;
++it;
}
catch(slot_remove)
{
it = slots.erase_after(prev);
}
catch(signal_return e)
{
return e.get();
}
}
return default_return_value;
}
示例2: removeDupsNoBuffer
void removeDupsNoBuffer(std::forward_list<int>& l) {
if (l.empty())
return;
auto backtrack = l.before_begin();
while (std::next(backtrack) != l.end()) {
// Iterate and print values of the list
for (int n : l)
std::cout << n << '\t';
std::cout << std::endl;
auto prev = std::next(backtrack);
auto iter = std::next(prev);
//std::cout << " prev =" << *prev << ", iter=" << *iter << std::endl;
while (iter != l.end()) {
if (*iter == *std::next(backtrack))
iter = l.erase_after(prev);
else {
++prev;
++iter;
}
}
++backtrack;
}
}
示例3: foldr_dest
U foldr_dest(std::function< U (U, T)>& op, const U& val, std::forward_list<T>& L)
{
if (L.empty()) return U(val);
T h = L.front();
L.pop_front();
return op (foldr(op, val, L), h);
}
示例4: runDeferred
bool runDeferred() {
__EVENTEMITTER_LOCK_GUARD(mutex);
if(deferredQueue.empty()) {
return false;
}
(deferredQueue.front())();
deferredQueue.pop_front();
return true;
}
示例5:
static ptid_t
fbsd_next_vfork_done (void)
{
if (!fbsd_pending_vfork_done.empty ())
{
ptid_t ptid = fbsd_pending_vfork_done.front ();
fbsd_pending_vfork_done.pop_front ();
return ptid;
}
return null_ptid;
}
示例6: write_files_activity
void middle_end_to_backend_workflow::write_files_activity(
const std::forward_list<
std::shared_ptr<dogen::formatters::file_writer_interface>
>& writers,
const std::forward_list<formatters::file>& files) const {
if (files.empty()) {
BOOST_LOG_SEV(lg, warn) << "No files were generated, so no output.";
return;
}
for (const auto writer : writers)
writer->write(files);
}
示例7: operator
void operator()(clmdep_msgpack::object::with_zone& o, const std::forward_list<T, Alloc>& v) const {
o.type = clmdep_msgpack::type::ARRAY;
if(v.empty()) {
o.via.array.ptr = nullptr;
o.via.array.size = 0;
} else {
uint32_t size = checked_get_container_size(std::distance(v.begin(), v.end()));
o.via.array.size = size;
clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(
o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
o.via.array.ptr = p;
for(auto const& e : v) *p++ = clmdep_msgpack::object(e, o.zone);
}
}
示例8: rReverse
void rReverse(std::forward_list<int> &l){
if(!l.empty()){
a = l.front();
l.pop_front(); //Remove all elements until empty
rReverse(l);
}else{
l.push_front(a); //Insert elements from the function stack
}
}
示例9: addEventHandlers
void IEventsEx::addEventHandlers(std::forward_list<IEventSinkBase*> eventHandlers)
{
if(eventHandlers.empty()) return;
_eventHandlerMutex.lock();
for(std::forward_list<IEventSinkBase*>::iterator i = eventHandlers.begin(); i != eventHandlers.end(); ++i)
{
bool exists = false;
for(std::forward_list<IEventSinkBase*>::iterator j = _eventHandlers.begin(); j != _eventHandlers.end(); ++j)
{
if(*j == *i)
{
exists = true;
break;
}
}
if(exists) continue;
_eventHandlers.push_front(*i);
}
_eventHandlerMutex.unlock();
}
示例10: rReturn
//Using recursion
int rReturn(std::forward_list<int> l, int n){
static int i = 0;
if(i == n)
return l.front();
if(!l.empty())
{
int a = l.front();
l.pop_front();
rReturn(l, n);
l.push_front(a);
i++;
}
}
示例11: empty
inline bool empty() const
{
return slots.empty();
}