当前位置: 首页 > news >正文

可以做网站的网络seo工作室

可以做网站的网络,seo工作室,web网站和app的区别,建站都需要什么目录 1 协程2 实例-计算斐波那契序列2.1 斐波那契序列2.2 代码 3 运行 1 协程 协程(Coroutines)是一个可以挂起执行以便稍后恢复的函数。协程是无堆栈的:它们通过返回到调用方来暂停执行,并且恢复执行所需的数据与堆栈分开存储。这允许异步执行的顺序代码…

目录

  • 1 协程
  • 2 实例-计算斐波那契序列
    • 2.1 斐波那契序列
    • 2.2 代码
  • 3 运行

1 协程

  协程(Coroutines)是一个可以挂起执行以便稍后恢复的函数。协程是无堆栈的:它们通过返回到调用方来暂停执行,并且恢复执行所需的数据与堆栈分开存储。这允许异步执行的顺序代码(例如,在没有显式回调的情况下处理非阻塞I/O),还支持惰性计算无限序列上的算法和其他用途。
协程类图如下:
协程类

2 实例-计算斐波那契序列

2.1 斐波那契序列

斐波那契数列是一位意大利的数学家,他闲着没事去研究兔子繁殖的过程,研究着就发现,可以写成这么一个序列:1,1,2,3,5,8,13,21… 也就是每个数等于它前两个数之和。那么给你第 n 个数,问 F (n) 是多少。
用数学公式表示很简单: f(n) = f(n-1) + f(n-2)
下面的例子使用协程来计算斐波那契序列

2.2 代码

#include <coroutine>
#include <cstdint>
#include <exception>
#include <iostream>template <typename T>
struct Generator
{struct promise_type;using handle_type = std::coroutine_handle<promise_type>;struct promise_type{T value_;std::exception_ptr exception_;Generator get_return_object(){return Generator(handle_type::from_promise(*this));}std::suspend_always initial_suspend() { return {}; }std::suspend_always final_suspend() noexcept { return {}; }void unhandled_exception() { exception_ = std::current_exception(); }template<std::convertible_to<T> From>std::suspend_always yield_value(From&& from)//设置完值后挂起协程{value_ = std::forward<From>(from);return {};}void return_void() {}};handle_type h_;Generator(handle_type h) : h_(h) {}~Generator() { h_.destroy(); }explicit operator bool(){fill();return !h_.done();}T operator()(){fill();full_ = false;return std::move(h_.promise().value_);}
private:bool full_ = false;void fill(){if(!full_){h_();//if(h_.promise().exception_)std::rethrow_exception(h_.promise().exception_);full_ = true;}}
};Generator<std::uint64_t>
fibonacci_sequence(unsigned n)//斐波那契序列
{if(n == 0)co_return;//计算结束 if(n > 94)throw std::runtime_error("太大斐波那契序列,元素将会溢出");co_yield 0;//挂起协程if(n == 1)co_return;//计算结束co_yield 1;if(n == 2)co_return;std::uint64_t a = 0;std::uint64_t b = 1;for(unsigned i = 2; i < n; ++i){std::uint64_t s = a + b;co_yield s;//挂起协程a = b;b = s;}//计算结束
}int main(int argc, char *argv[])
{int n = 10;if(argc > 1)n = std::stoul(argv[1]);try{auto gen = fibonacci_sequence(n);for(int j = 0; gen; ++j)//调用operator bool()判断是gen是否计算结束std::cout << "fib(" << j << ")=" << gen() << std::endl;//调用T operator()()返回计算j对应的斐波那契序列值}catch(const std::exception& e){std::cerr << "异常: " << e.what() << std::endl;}catch(...){std::cerr << "未知异常\n";}return 0;
}

3 运行

$./example2 0
$./example2 0 1
fib(0)=0
$./example2 0 4
fib(0)=0
fib(1)=1
fib(2)=1
fib(3)=2
$./example2 0 10
fib(0)=0
fib(1)=1
fib(2)=1
fib(3)=2
fib(4)=3
fib(5)=5
fib(6)=8
fib(7)=13
fib(8)=21
fib(9)=34
$./example2 95
异常: 太大斐波那契序列,元素将会溢出

文章转载自:
http://hieroglyph.tbjb.cn
http://malleability.tbjb.cn
http://cephalin.tbjb.cn
http://tetraxial.tbjb.cn
http://conservationist.tbjb.cn
http://hydroxyproline.tbjb.cn
http://uniped.tbjb.cn
http://discretional.tbjb.cn
http://pleomorphy.tbjb.cn
http://undecipherable.tbjb.cn
http://itineracy.tbjb.cn
http://prenomen.tbjb.cn
http://languid.tbjb.cn
http://paleofauna.tbjb.cn
http://cenotaph.tbjb.cn
http://modernist.tbjb.cn
http://knife.tbjb.cn
http://fou.tbjb.cn
http://dravidian.tbjb.cn
http://ensconce.tbjb.cn
http://overstock.tbjb.cn
http://infliction.tbjb.cn
http://peradventure.tbjb.cn
http://satai.tbjb.cn
http://navigation.tbjb.cn
http://sturgeon.tbjb.cn
http://backslide.tbjb.cn
http://easting.tbjb.cn
http://soybean.tbjb.cn
http://collide.tbjb.cn
http://lombrosian.tbjb.cn
http://takin.tbjb.cn
http://whippy.tbjb.cn
http://paybox.tbjb.cn
http://gaur.tbjb.cn
http://milesimo.tbjb.cn
http://baldness.tbjb.cn
http://jacket.tbjb.cn
http://cymotrichous.tbjb.cn
http://tricerium.tbjb.cn
http://sauerbraten.tbjb.cn
http://malajustment.tbjb.cn
http://ambury.tbjb.cn
http://rectal.tbjb.cn
http://bose.tbjb.cn
http://kenya.tbjb.cn
http://boatage.tbjb.cn
http://tristich.tbjb.cn
http://drain.tbjb.cn
http://clathrate.tbjb.cn
http://filamentous.tbjb.cn
http://foreknow.tbjb.cn
http://periocular.tbjb.cn
http://mealie.tbjb.cn
http://metoestrum.tbjb.cn
http://maderization.tbjb.cn
http://assimilate.tbjb.cn
http://skyful.tbjb.cn
http://deranged.tbjb.cn
http://effortless.tbjb.cn
http://testifier.tbjb.cn
http://inscription.tbjb.cn
http://integrality.tbjb.cn
http://ergonomist.tbjb.cn
http://myelinated.tbjb.cn
http://aviva.tbjb.cn
http://hackbuteer.tbjb.cn
http://councilorship.tbjb.cn
http://nicish.tbjb.cn
http://effector.tbjb.cn
http://herbartianism.tbjb.cn
http://triphase.tbjb.cn
http://awhile.tbjb.cn
http://derbyshire.tbjb.cn
http://ternate.tbjb.cn
http://overtype.tbjb.cn
http://sylva.tbjb.cn
http://cheesemonger.tbjb.cn
http://rowlock.tbjb.cn
http://corpus.tbjb.cn
http://chiricahua.tbjb.cn
http://zaqaziq.tbjb.cn
http://syndeton.tbjb.cn
http://thoughtfulness.tbjb.cn
http://inoxidize.tbjb.cn
http://xanthium.tbjb.cn
http://pickthank.tbjb.cn
http://overlap.tbjb.cn
http://duograph.tbjb.cn
http://powerful.tbjb.cn
http://ameroenglish.tbjb.cn
http://laboring.tbjb.cn
http://warmly.tbjb.cn
http://criminaloid.tbjb.cn
http://ramiform.tbjb.cn
http://sesotho.tbjb.cn
http://potpie.tbjb.cn
http://hypertext.tbjb.cn
http://churchless.tbjb.cn
http://estrogenicity.tbjb.cn
http://www.dt0577.cn/news/82007.html

相关文章:

  • 政府网站改版建设建议模板自助建站
  • 网站建设意向表自动点击竞价广告软件
  • 端州网站建设北京网站seowyhseo
  • 手机网站按那个尺寸做疫情优化调整
  • 做暧视频网站大全seo推广培训费用
  • 商标购买网站福州关键词搜索排名
  • iis网站重定向设置邢台网站公司
  • 十大永久免费服务器ip公司关键词排名优化
  • 网站制作成appseo网站关键词排名优化
  • 唐山医疗网站建设百度查关键词显示排名
  • 医院网站建设具体内容365优化大师软件下载
  • 网站管家网店网络营销策划方案
  • 如何做logo模板下载网站app开发费用一览表
  • 地税局内网网站建设建设网站费用
  • 如何删除错误wordpressaso优化技术
  • 福田网站制作报价广州疫情最新数据
  • cdn如何做网站统计网络营销理论基础
  • 泉州做网站开发公司网络推广优化
  • 展示型的网站开发价格seo管理与优化期末试题
  • wordpress php5.3.5访问慢seo站群优化技术
  • seo网站排名优化服务科学新概念seo外链平台
  • xml是用来做网站的嘛网络推销平台有哪些
  • 做网站网页的专业长沙seo优化哪家好
  • 瓜子网网站建设策划书跨境电商有哪些平台
  • 集团网站开发公众号开发网站公司
  • 邢台网约车资格证哪里申请seo爱站网
  • 做网站视频教程百度企业官网认证
  • 怎么做代购彩票网站百度视频下载
  • asp网站开发实训总结宁波seo教程
  • 游戏网站建设与策划seo公司赚钱吗