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

网站设计公司请示台州seo排名优化

网站设计公司请示,台州seo排名优化,做的视频发到哪个网站好,打开qq登录网页问题引入 cout << (uf.is_same_set(x, y)) ? Y : N<<endl; 请问大家&#xff0c;这条语句对吗&#xff1f;&#xff08;这里的uf.is_same_set(x, y)是一个自定义函数&#xff0c;返回bool值&#xff1b;所以不是问题的关键&#xff09;》 答案是这条语句报错了…

问题引入

cout << (uf.is_same_set(x, y)) ? 'Y' : 'N'<<endl;

请问大家,这条语句对吗?(这里的uf.is_same_set(x, y)是一个自定义函数,返回bool值;所以不是问题的关键)==》

答案是这条语句报错了。我再写了以下的语句,却能准确无误。

  cout << ((uf.is_same_set(x, y)) ? 'Y' : 'N') << endl;

为什么呢? ==》

1.这是因为第一条语句中,<<的优先级会高于三目运算符,即它先返回的是 ostream&;

然后会再执行ostream?'Y':'N'部分;三目判断返回'Y'

但是'Y' 是 char 类型,不是一个可以用 << 运算的对象。

2.cout << ((uf.is_same_set(x, y)) ? 'Y' : 'N') << endl; 这个表达式会先执行三目,返回‘Y’或者‘N’;然后变为:cout<<'Y'<<endl; 所以就没有错。

基于这个问题,我们今天就来聊聊cout

cout是什么?

cout 是一个全局的 输出流对象,本质上是 ostream 类的一个实例,通过 运算符重载(operator<<,实现了类似 cout << x 这样的打印效果。

此外还有其他流对象是:

名称类型功能
cinistream标准输入流
cerrostream错误输出流
clogostream日志输出流

为什么能用 << 打印?

这是 C++ 的经典设计:通过重载运算符 <<(插入运算符)来模拟输出操作。它的原型类似于这样:即它使重载的运算符函数;

ostream& operator<<(ostream& os, int value);
ostream& operator<<(ostream& os, const char* str);
ostream& operator<<(ostream& os, char c);
ostream& operator<<(ostream& os, double d);
ostream& operator<<(ostream& os, bool b);
// 等等,针对不同类型都做了重载

这就意味着你可以这样使用:

cout << "Hello" << ' ' << 42 << ' ' << true;

它的底层执行顺序是:

cout << "Hello"          // 返回 ostream&<< ' '             // 继续插入<< 42              // 继续插入<< ' '             // ...<< true;           // 一连串流式操作

因为每次 << 都返回 ostream&,所以可以链式调用。


输出是怎么“流”到控制台的?

cout 内部持有一个缓冲区(buffer),你每调用一次 <<,其实是将数据写入这个缓冲区。只有当你:

  • 显式使用 endl(刷新并换行);

  • 或缓冲区满;

  • 或程序结束前清理资源;

才会真正把内容输出到终端控制台所以我们便能理解下面两条语句的区别了。

cout << "hello\n";       // 可能只是写进缓冲区
cout << "world" << endl; // 此时强制刷新缓冲区

endl 是什么?

endl 是一个特殊的东西,它不是字符串,而是一个 函数指针,原型是:

ostream& endl(ostream& os);

它的作用是:

  1. 向流中插入一个换行符(\n);

  2. 刷新缓冲区(flush);

所以cout << "Hello" << endl; 等价于:

cout << "Hello";
cout.put('\n');
cout.flush();

自定义类型如何支持 << 输出?

你可以为你的类自己写一个 << 重载,让 cout << 对象 成为可能:

class Person {
public:string name;int age;
};
​
// 重载 <<
ostream& operator<<(ostream& os, const Person& p) {os << "Name: " << p.name << ", Age: " << p.age;return os;
}

这样你就能这样写:

Person p{"麦兜", 20};
cout << p << endl;

ok,这个知识点实际上涉及到了运算符重载函数的编写;我先说一个结论:

operator<<必须写成全局函数(或友元函数),为什么呢?

因为 cout << p 是这样调用的:operator<<(cout, p); // ostream 是左边,Person 是右边

如果你写成:

class Person { ostream& operator<<(ostream& os); // 错误!只能是 p << cout 
};

这就变成了 p << cout,方向颠倒了,所以没法实现 cout << p 的语法。

故哪些运算符建议写成成员函数?哪些建议全局?

运算符类型推荐形式说明
=, [], (), ->成员函数这些操作符需要访问类的内部状态或作用于“左侧对象本身”
<<, >>, +, -, ==, !=全局函数或友元函数左侧不是类对象(如 cout << obj),或需要双操作数对称性

cout的使用技巧

  1. 运算符优先级陷阱 (如我们上面的问题)

  2. 输出 bool 值时注意格式

cout << true << endl;      // 输出: 1
cout << boolalpha << true << endl;  // 输出: true ✅

   3.输出字符和整数要区

    char ch = 'A';
    int x = 65;
    cout << ch << endl;     // 输出: A
    cout << static_cast<int>(ch) << endl;  // 输出: 65

    4.其他格式化技巧:

    我们需要加上 头文件: #include <iomanip>

    1) 设置小数精度 ;如上

    2) 宽度对齐 & 填充字符

    cout << setw(10) << 42 << endl;         // 宽度为10,默认右对齐
    cout << setfill('*') << setw(10) << 42 << endl;  // 输出:********42

    3)左右对齐

    cout << left << setw(10) << 42 << endl;   // 左对齐
    cout << right << setw(10) << 42 << endl;  // 右对齐

    4) 输出十六进制/八进制

    cout << hex << 255 << endl;  // ff
    cout << oct << 255 << endl;  // 377
    cout << dec << 255 << endl;  // 255 (恢复十进制)

    显示符号位(正数也带 + )

    cout << showpos << 123 << endl;  // +123

    再次理解

    运算符重载是指可以自定义某个类使用某个运算符的逻辑,譬如+,-,*等等。

    而<<这个运算符也是可以被重载的;例如ostream类就是重载了这个运算符 。

    cout是ostream的一个对象,它使用<<能够将数据写入这个缓冲区。

    实际上cout<<10是operator<<(cout, 10);的语法糖。即他本质上是调用了operator<<,并把要打印的东西(整数,浮点数,字符,字符串)作为参数。

    而这个运算符重载函数返回的是ostream&,即引用类型,则他可以实现链式调用;

    http://www.dtcms.com/wzjs/20386.html

    相关文章:

  1. 做设计找素材都有什么网站网站怎么做推广
  2. 做家具网站要多少钱下载浏览器
  3. 四川城乡和住房建设厅官方网站苏州seo网络推广
  4. 网站的建设及维护的费用优化百度seo技术搜索引擎
  5. 建设阅读网站的意义北京网站优化体验
  6. 电脑云主机东莞seo快速排名
  7. 做国外电影网站北京企业网站seo平台
  8. 招聘设计师去哪个网站手机优化软件排行
  9. 池州公司做网站长沙网站seo
  10. 可以随意建国际商城的网站吗怎么搭建自己的网站
  11. 做门户网站用什么模板网站设计框架
  12. 做电商网站要服务器吗seo常用的优化工具
  13. wordpress amp自动seo搜索引擎优化排名哪家更专业
  14. 公司网站建设都需要什么内容网络推广电话销售技巧和话术
  15. 怀化网站建设北京网站seo服务
  16. 网站制作和推广全世界足球排名前十位
  17. 怎么自己做网站表白杭州营销策划公司排名
  18. wordpress调用指定文章图片路径点击精灵seo
  19. 网站链接网站建设的意义和作用
  20. html网站怎么做seo交互论坛
  21. 德阳网站制作公司如何推广app
  22. 做视频网站的公司sem是什么品牌
  23. 做网站的中标公司数字营销公司
  24. 面料做电商 哪个网站好属于网络营销特点的是
  25. 朗姿青春日记 网站谁做的搜索引擎优化的流程
  26. 网站添加微博百度客服电话24小时
  27. 网页设计网站页面代码百度快速收录开通
  28. 成都市高新区规划建设局网站电商网站网址
  29. 视频制作网站素材北京疫情又严重了
  30. 企业网站建设需要什么在线网页生成器