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

2025.2.1(迭代器,auto,for遍历)

迭代器(iterator)

迭代器是cpp中STL的重要组成部分,主要负责数据的遍历以及删改,//迭代器,形如指针,一些地方就是指针,begin返回这块空间开始的迭代器,end是最后一个数据的下一个位置的迭代器,很有可能是'\0',it需要解引用所以真的很像指针。

int main()
{
	string s1 = "I Love You";
	auto it = s1.begin();
	string ::iterator it1 = s1.begin(); 
	while (it != s1.end())
	{
		cout << *it << ' ';
		++it;
	}

auto

auto关键字,可以用于声明变量,用于做返回值,但是不能用于传参。auto关键字会自动识别声明的参数所带的值类型,也就是说,如果没有给被auto关键字修饰的参数初始值,会导致报错。auto也可用于函数值的返回。但是通常情况下并不推荐,如果一个函数嵌套了多重其他的函数,且使用了大量的auto,会导致代码混乱,易读性差。auto不能直接声明数组。如果auto和auto*声明指针时没有差别,但是用auto声明引用类型时比如加上&。auto最常用的场景还是变量声明部分。如下图的it和It,参数类型的名字很长,每次写起来都很麻烦,因此直接使用auto就很方便,编译器会自动找到相应的类型。

auto Add(const int a, const int b)
{
	return a + b;
}

template <typename A,class B>
A Add(A a, int b)
{

}
int main()
{
	auto a = 10;
	auto b = a;
	auto c = 'x';
    //auto y; 报错
	string s1 = "abcde";
	for (auto ch : s1)
	{
		cout << ch << endl;
	}
	cout << Add(a,b) << endl;

	std::map<std::string, std::string> dict = { {"1","一"},{"2","二"} };
	auto it = dict.begin();
	std::map<std::string, std::string>:: iterator It = dict.begin();
	return 0;
}

 范围for

 范围for是c++11引入基于范围的for循环,只要用于有范围的集合。for循环后的括号由“:”分为两部分,前一个部分是for内用于迭代的对象,对标的就是普通for循环中常用的i,后一部分对标的是被迭代的对象。for循环可作用于数组和容器,其本质就是替换了迭代器,利用迭代器进行工作。

	string s1 = "I Love You";
    for (auto ch : s1)
    {
	    cout << ch << endl;
    }


http://www.kler.cn/a/529095.html

相关文章:

  • kamailio-ACC_RADIUS模块详解,附加AAA协议
  • [原创](Modern C++)现代C++的关键性概念: 流格式化
  • arkts bridge使用示例
  • 电气相关知识
  • LeetCode:343. 整数拆分
  • 图论——最小生成树
  • PID算法的数学实现和参数确定方法
  • 新集成,Sui 的 Phantom 时代正式开启!
  • Java小白入门教程:数组(一维数组)
  • kamailio-ACC_RADIUS模块详解,附加AAA协议
  • 一文读懂Python之random模块(31)
  • C++:虚函数与多态性习题2
  • 洛谷 P1734 最大约数和 C语言
  • 讯飞绘镜(ai生成视频)技术浅析(三):自然语言处理(NLP)
  • 手撕Vision Transformer -- Day2 -- Dataset
  • 02数组+字符串+滑动窗口+前缀和与差分+双指针(D2_字符串(D2_刷题练习))
  • 每日 Java 面试题分享【第 18 天】
  • Java - 引用类型:强引用、软引用、弱引用和虚引用详解
  • java CountDownLatch和CyclicBarrier
  • Spring AOP 入门教程:基础概念与实现
  • ASP.NET Core 启动并提供静态文件
  • 动态规划两个数组dp问题系列一>不相交的线
  • 一文讲解Java中的HashMap
  • 快速提升网站收录:如何设置网站标签?
  • pandas中的apply方法使用
  • 【漫话机器学习系列】074.异方差(Heteroscedasticity)