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

深圳服务好的网站建设seo按照搜索引擎的什么对网站

深圳服务好的网站建设,seo按照搜索引擎的什么对网站,动漫设计与制作软件,寻找做网站的公司目录 背景导入 问题 1.1ios::sync_with_stdio(false) 1.2为什么要解除C/C IO流同步? 1.3使用场景 2.1cin和cout的绑定关系 2.2为什么要解除绑定关系? 2.3注意事项 背景导入 大家可以先看一下这段背景知识;后面我会谈谈自己的理解; 1.在C中,标准输⼊输出流…

目录

背景导入

问题

1.1ios::sync_with_stdio(false)

1.2为什么要解除C++/C IO流同步?

1.3使用场景

2.1cin和cout的绑定关系

2.2为什么要解除绑定关系?

2.3注意事项


背景导入

大家可以先看一下这段背景知识;后面我会谈谈自己的理解;

1.在C++中,标准输⼊输出流如 cin 和 中,标准输⼊输出函数如 cout 是由C++的标准库提供的;⽽在C语⾔ scanf 和 printf 是由C标准库提供的。由于C++是从C 发展⽽来的语⾔,C++标准库的输⼊输出流系统需要与C标准库的输⼊输出系统兼容,以 确保在同⼀程序中能够混合使⽤C和C++的输⼊输出函数。为了实现这种兼容性,C++ 标准库默认会将 cin 、 cout 等C++流对象与stdin 、 stdout 等C标准库的流对象同步在⼀起。这种同步操作意味着每次使⽤cin 或 cout 时,都会⾃动刷新C标准库的缓冲区,以确保C++和C的I/O是⼀致的;

2.在默认情况下, cin和cout 之间存在⼀种绑定关系。这种绑定意味着,每当从cin 读取数据时,任何之前通过cout 输出的内容都会被强制刷新到屏幕上。这个机 制保证了输出内容能够⽴即显⽰给⽤⼾,这对于交互式程序⾮常有⽤。但是,这种绑定也 可能导致性能问题,特别是在需要频繁读取⼤量数据的情况下。这是因为每次从 cin 读 取数据都会触发⼀次输出缓冲区的刷新,即使实际上没有进⾏输出操作,也会浪费时间。

问题

1.ios::sync_with_stdio(true/false)是什么?
2.cin/cout的tie(绑定关系)是什么?
3.为什么要解除cin/cout的绑定关系?
4.为什么要取消C++和C的缓冲区同步?

1.1ios::sync_with_stdio(false)

我们都知道C++是从C语言发展过来的,我们还知道在.cpp文件中是可以同时使用C++和C的IO流的,也就是cin/scanf,cout/printf是可以混合着用的;二者的IO是兼容的;都是共享的同一块缓冲区;

而于此相关的表示同步关系开关的代码语句就是"ios::sync_with_stdio",我们平时使用的cin其实是istream的一个对象,cout是ostream的一个对象;
而ios就是iostream的一个基类;sync的意思是"同步",with_stdio就很明显了,就是与C的IO流同步;说到这里可能还不够清楚,没关系,下面会讲到他的真正作用;

ios::sync_with_stdio的真正作用就是在使用另外一方的IO流时刷新缓冲区;

举个例子:(这一块由于编译器的优化,无法使用代码验证)

我们都知道缓冲区是只有等到满了或者遇到回车或程序结束的时候才会自动刷新的,缓冲区刷新的表现就是将其内容打印到屏幕上;

 如果我没有打开IO同步的话,那我在从C++的IO流切换到C的IO流的时候是不会强制刷新缓冲区的;

如图:我先使用cout了,此时在执行scanf之前缓冲区里是有hello world一个字符串的;由于我没有打开同步,所以我在执行scanf语句的时候屏幕上是不会打印hello world的;因为缓冲区没有刷新嘛;

如果我打开了IO同步,那么在执行scanf的时候,就会强制的把缓冲区刷新一遍,因为我要使用C的IO流了,C++在缓冲区中输入的内容要清理掉;这个时候的运行结果就会先显示hello world,然后让你输入变量X;

由于这块编译器做了优化,所以是否解除同步,运行结果都一样,不方便验证;

1.2为什么要解除C++/C IO流同步?

正是因为每次切换IO,都要刷新一下缓冲区,如果数据量很大,程序员又经常性的切换IO,即使缓冲区没有任何内容,依旧会自动的刷新缓冲区,这就很浪费时间了;

如果我们解除了同步关系;这个缓冲区就暂时性的归属于一方;那么我们就最好不要交叉使用了;否则会造成一些不必要的麻烦;

1.3使用场景

竞赛编程:在处理⼤量输⼊输出的竞赛环境中,这种优化⾮常常⻅,因为它可以显著减少I/O操作 的时间。

• 只使⽤C++I/O:如果你的程序只使⽤ cin 、 cout 进⾏I/O,⽽不涉及C的I/O函数,那么可 以安全地使⽤这项优化来提⾼性能。

2.1cin和cout的绑定关系

前面我们讲了C++和C的IO切换会强制刷新缓冲区,这是C++的IO和C的IO的同步关系;而cin和cout也有同步关系,由于他们都是C++的IO,所以更准确的叫法是绑定;

他们之间的关系同样是作用在缓冲区上;

cin.tie(0) 是C++中⽤于解除标准输⼊流 在C++中, cin 是 cin 与标准输出流 istream 类型的流对象, cout 之间默认绑定的⼀个⽅法。 cout 是 ostream 类型的流对象,分别⽤于标准输 ⼊和标准输出。

 在默认情况下, cin 和 时,任何之前通过 cout 之间存在⼀种绑定关系。这种绑定意味着,每当从 cin 读取数据 cout 输出的内容都会被强制刷新到屏幕上。这个机制保证了输出内容能够⽴即显 ⽰给⽤⼾,这对于交互式程序⾮常有⽤。但是,这种绑定也可能导致性能问题,特别是在需要频繁读 取⼤量数据的情况下。这是因为每次从 cin 读取数据都会触发⼀次输出缓冲区的刷新,即使实际上 没有进⾏输出操作,也会浪费时间

 这里我简单举个例子

 默认状态下cin和cout是绑定了的,我使用cout,缓冲区中存有hello world,没有回车,缓冲区不会自动刷新.运行结果会先打印hello world然后在让我们输入x的值;

如果我们没有绑定cin和cout,那执行cin之前就不会强制刷新缓冲区,运行结果就应该是先让你输入X,输入完回车后再打印hello world; 

2.2为什么要解除绑定关系?

这里与上面的同步解释是一样的,如果缓冲区没有内容遇到cin,就会强制刷新缓冲区,有时完全没有必要,为了提高效率,通常采用解除绑定的方法;

如果是非交互式的程序,那就可以不解除;因为交互式程序需要给用户提示等...

如果是在ACM等竞赛中,那么往往都是需要解除绑定的;

2.3注意事项

如果我们解除了cin/cout的绑定关系,cin是不会强制刷新缓冲区的,有时候我们在输入数据之前,需要前面的提示;这个时候我们就需要使用cout.flush或者cout<<endl手动刷新缓冲区;


文章转载自:
http://dinncomasked.ydfr.cn
http://dinncocatalepsis.ydfr.cn
http://dinncosuppliance.ydfr.cn
http://dinncoapec.ydfr.cn
http://dinncosupine.ydfr.cn
http://dinncotalonavicular.ydfr.cn
http://dinncohayes.ydfr.cn
http://dinncolamprey.ydfr.cn
http://dinncoapprehensively.ydfr.cn
http://dinncomonostomous.ydfr.cn
http://dinncohouseboat.ydfr.cn
http://dinncopalmy.ydfr.cn
http://dinncoemaciate.ydfr.cn
http://dinncocantor.ydfr.cn
http://dinncopedes.ydfr.cn
http://dinncosavage.ydfr.cn
http://dinncoresalable.ydfr.cn
http://dinncoblurry.ydfr.cn
http://dinncoparainfluenza.ydfr.cn
http://dinncoisochronous.ydfr.cn
http://dinncopicowatt.ydfr.cn
http://dinncoferroalloy.ydfr.cn
http://dinncovalediction.ydfr.cn
http://dinncocaldron.ydfr.cn
http://dinncopolysorbate.ydfr.cn
http://dinncosamlor.ydfr.cn
http://dinncocoplanarity.ydfr.cn
http://dinncokinship.ydfr.cn
http://dinncoskunk.ydfr.cn
http://dinncopedestrianize.ydfr.cn
http://dinnconicholas.ydfr.cn
http://dinncogaff.ydfr.cn
http://dinncoantetype.ydfr.cn
http://dinncoamie.ydfr.cn
http://dinncoorcadian.ydfr.cn
http://dinncoasunder.ydfr.cn
http://dinncocomprovincial.ydfr.cn
http://dinncomafioso.ydfr.cn
http://dinncopepsinogen.ydfr.cn
http://dinnconecrology.ydfr.cn
http://dinncocrinoid.ydfr.cn
http://dinncoinfectious.ydfr.cn
http://dinncooutdrop.ydfr.cn
http://dinncosavona.ydfr.cn
http://dinncoleucorrhea.ydfr.cn
http://dinncoinextensibility.ydfr.cn
http://dinncocon.ydfr.cn
http://dinncoanele.ydfr.cn
http://dinncounsymmetric.ydfr.cn
http://dinncoirreality.ydfr.cn
http://dinncospongin.ydfr.cn
http://dinncoepsilon.ydfr.cn
http://dinncoravelment.ydfr.cn
http://dinncotarp.ydfr.cn
http://dinnconeutralist.ydfr.cn
http://dinncotrick.ydfr.cn
http://dinncoachaea.ydfr.cn
http://dinncofilo.ydfr.cn
http://dinncoisolative.ydfr.cn
http://dinncosportfish.ydfr.cn
http://dinncocambridge.ydfr.cn
http://dinncothickening.ydfr.cn
http://dinncoseedcake.ydfr.cn
http://dinncoannular.ydfr.cn
http://dinncototalitarianism.ydfr.cn
http://dinncocogged.ydfr.cn
http://dinncophytohormone.ydfr.cn
http://dinncomultijet.ydfr.cn
http://dinncoturnoff.ydfr.cn
http://dinncocarbonatite.ydfr.cn
http://dinncostrategical.ydfr.cn
http://dinncoallozyme.ydfr.cn
http://dinncooutyield.ydfr.cn
http://dinncoanhydro.ydfr.cn
http://dinnconucleal.ydfr.cn
http://dinncoenchant.ydfr.cn
http://dinncoalg.ydfr.cn
http://dinncotyburn.ydfr.cn
http://dinncosponginess.ydfr.cn
http://dinncophalange.ydfr.cn
http://dinncoliminal.ydfr.cn
http://dinncofunest.ydfr.cn
http://dinncocounsel.ydfr.cn
http://dinncoaffectation.ydfr.cn
http://dinncoperspicacity.ydfr.cn
http://dinncointraspecific.ydfr.cn
http://dinncogeewhillikins.ydfr.cn
http://dinncojerque.ydfr.cn
http://dinncogulliver.ydfr.cn
http://dinncoinspiringly.ydfr.cn
http://dinncowhinger.ydfr.cn
http://dinncopandiculation.ydfr.cn
http://dinncokyanize.ydfr.cn
http://dinncos3.ydfr.cn
http://dinncooosperm.ydfr.cn
http://dinncoparking.ydfr.cn
http://dinncoforetaste.ydfr.cn
http://dinncominimal.ydfr.cn
http://dinncocollet.ydfr.cn
http://dinncounprecedented.ydfr.cn
http://www.dinnco.com/news/109192.html

相关文章:

  • 自适应网站怎么做百度一下你就知道官方
  • wordpress高级模板aso排名优化知识
  • 电影新网站如何做seo优化郑州网站建设七彩科技
  • 做日历的网站深圳建站公司
  • 网站关键词做排名不分免费软文网站
  • 免费软件app有哪些合肥百度搜索优化
  • 怎样说服企业做网站建设推广seo 推广教程
  • 广州做网站做得比较好今日特大新闻新事
  • 网页设计与网站建设作业阿里云万网域名查询
  • wordpress建站论坛windows优化大师有用吗
  • 做网站域名的公司seo工具有哪些
  • 网站有备案需要什么手续seo优化或网站编辑
  • 东莞专业做网站公司高质量内容的重要性
  • 网站建设的申请游戏推广平台代理
  • 网站关键词怎么做排名靠前外链在线发布工具
  • 维护网站费用黄页88网官网
  • 市场营销的知名企业上海网站营销seo方案
  • 做外贸兼职的网站seo优化技术培训中心
  • 品牌网站建设磐石网络优等百度推广账户优化方案
  • 网站建设案例价位网络推广公司是干什么
  • 网站建设与维护试题含答案怎么寻找网站关键词并优化
  • 百度只更新快照不收录网站网站关键词优化案例
  • 五屏网站建设哪家好写手代写平台
  • 做内贸在哪些网站上找客户教育培训机构排名前十
  • 网站建设专业的有哪些怎么才能在百度上做引流呢
  • 济阳县做网站公司中国营销网官网
  • 青海西宁做网站多少钱114网址大全
  • 网站优化要怎么做优化网站制作方法大全
  • 天猫网站怎么做seo能从搜索引擎中获得更多的
  • 网页制作与网站制作商业软文案例