decltype用法_指针声明符

decltype用法_指针声明符decltype操作符

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

个站

首页_码到城攻码到城攻分享但不限于IT技术经验技巧、软硬资源、所闻所见所领会等,站点提供移动阅读、文章搜索、在线留言、支付打赏、个人中心、免签支付等功能decltype用法_指针声明符https://www.codecomeon.com/index

关于decltype操作符的说明:

1、在C++中,decltype作为操作符,用于查询表达式的数据类型。decltype在C++11标准制定时引入,主要是为泛型编程而设计,以解决泛型编程中,由于有些类型由模板参数决定,而难以(甚至不可能)表示之的问题。泛型编程在整个1990年代越发流行,对实现类型推导机制的需求也应运而生。为此,许多编译器厂商都基于程序语言现有的功能,自行实现了这类操作符,其实现如typeof,以及一些功能有限,但更易移植的实现。2002年间,比雅尼·斯特劳斯特鲁普提议在C++内标准化这类操作符,并将之加入C++;且建议命之为“decltype”,以反映其具有获取表达式的“声明类型”(Declared Type)的功能。

2、从语义上说,decltype的设计适合于通用库编写者与编程新手。总体上说,对于目标对象或函数,由decltype推导出的类型与源码中的定义可精确匹配。而正如sizeof操作符一样,decltype亦不需对操作数求值。

例子:

#include<iostream>
#include<string>
using namespace std;

string::size_type FindChar(const string &s, char c, string::size_type &count)
{
	auto ret = s.size();  //字符串总长,来控制循环,同时初始化初始化ret
	count = 0;
	for (decltype(ret) i = 0; i != s.size(); ++i)  //decltype获取ret的类型
	{
		if (s[i] == c)
		{
			if (ret == s.size())  //巧妙使用ret == s.size() 去控制字符C第一次出现,以后都不在统计
				ret = i;
			++count;   //上边if只是第一次进去一次,之后都不在进 以后遇到C都只加count
		}
	}
	return ret;
}

void Test()
{
	string s1("lilililililililililili");
	
	string::size_type Count = 0;;
	auto index = FindChar(s1,'l',Count);
	cout << "第一次出现的位置:" << index << endl;
	cout << "Count = " << Count << endl;
}

int main()
{
	Test();
	return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195501.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ubuntu下插入网线无法联网的问题

    Ubuntu下插入网线无法联网的问题今天把以前的服务器搬出来,准备训练一个深度学习模型,然而,在联网的过程中,出现一个问题:就是插入网线后无法联网。想到以前配置过翻墙,就把相关的配置文件如.bashrc,/etc/profile,等相关文件进行了修改,屏蔽掉以前的翻墙代理设置,然而还是无法联网。后面想到以前是用拨号INodeClient来连接上网的,就把与InodeClient相关的配置注释掉,然而还是无法上网。后面在网上找到一个解决方案:参考网址https://blog.csdn.net/zhu334974857/articl.

    2022年6月26日
    92
  • 一:计算机基础入门及介绍[通俗易懂]

    一:计算机基础入门及介绍[通俗易懂]一:计算机基础入门篇1.计算机系统计算机(Conputer):俗称电脑,一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速的处理,然后把处理结果输出的现代化智能电子设备。…

    2022年10月21日
    3
  • pycharm 2021.5.2激活码【在线注册码/序列号/破解码】[通俗易懂]

    pycharm 2021.5.2激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    63
  • ArcGIS二次开发基础教程(00):基础界面设计

    ArcGIS二次开发基础教程(00):基础界面设计ArcGIS二次开发基础教程(00):基础界面设计(开发环境:VS2010+ArcEngine10.2+C#;鉴于学习ArcGIS二次开发的同学都有一定的WinForm开发和ArcGIS软件使用基础,故此教程不再对一些基础内容作详细阐述)首先新建一个Windows窗体应用程序,设置Size为(700,450),再添加一个MenuStrip,输入文件,如图:添加一个ToolB…

    2022年7月23日
    13
  • 三周第四次课(4月9日) 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区

    三周第四次课(4月9日) 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区

    2021年5月26日
    95
  • 学计算机男生喜欢的礼物,十大00后男生喜欢的礼物大集合

    学计算机男生喜欢的礼物,十大00后男生喜欢的礼物大集合每个时代都有它流行的东西,自然不同时代的人喜欢的东西也不一样。00后的男生作为二十一世纪的第一批年轻男士,自然也有他们喜欢的东西。在这主要为大家盘点一些00后男生喜欢的礼物,每一件都充满创意和新奇的元素,送给00后男生不会拒绝。NO.1男士钛钢军牌00后男生并不是娇弱的妈宝男,他们也有血性方刚的一面,自然他们也想表现出霸气的一面。这款男士钛钢刻字军牌,美国大兵同款军牌项链,可以定制文字和照片,0…

    2022年7月25日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号