当前位置: 首页 > 编程笔记 >

C++begin和end运算符的返回迭代器的类型如何判断?

谷梁昊空
2023-03-14
本文向大家介绍C++begin和end运算符的返回迭代器的类型如何判断?,包括了C++begin和end运算符的返回迭代器的类型如何判断?的使用技巧和注意事项,需要的朋友参考一下

begin和end返回的具体类型应该由对象是否是常量进行确定,如果对象是常量,则这两个函数返回const_iterator;

如果对象不是常量,则这个函数返回iterator类型。下面利用一个超级简单的小程序进行验证二者的类型,源代码如下:

#include <iostream> 
#include <vector>
using namespace std;  
int main() 
{ 
 vector<int> ivec;
 const vector<int> cv;
 auto it1 = ivec.begin();
 auto it2 = cv.begin();
 cout<<typeid(it1).name()<<endl;
 cout<<typeid(it2).name()<<endl;
 system("pause");
}

从输出结果,可以很好的验证上面的分析是正确的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接

 类似资料:
  • 问题内容: 尝试执行以下操作: 我收到此错误: 无法确定条件表达式的类型,因为“ System.DBNull”和“ System.DateTime”之间没有隐式转换 我显然理解该错误,但是考虑到Parameters.Value是object类型,为什么类型甚至很重要?有没有办法完成我想做的事情? 问题答案: 返回值进入的值并没有什么区别,因为 必须首先确定返回值的类型 。 这两个值(投一个,)其他

  • 本文向大家介绍C ++ STL中的map :: begin()和end(),包括了C ++ STL中的map :: begin()和end()的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将讨论C ++ STL中map::begin()和map::end()函数的工作,语法和示例。 什么是C ++ STL中的映射? 映射是关联容器,它有助于按特定顺序存储由键值和映射值的组合形成的元素。在

  • 本文向大家介绍Perl中的BEGIN和END块,包括了Perl中的BEGIN和END块的使用技巧和注意事项,需要的朋友参考一下 您可以在Perl程序中定义任意数量的名为BEGIN和END的代码块,它们分别充当构造函数和析构函数。 在加载和编译perl脚本之后但在执行任何其他语句之前,将执行每个 BEGIN块。 每个END块都在perl解释器退出之前执行。 创建Perl模块时,BEGIN和END块特

  • 本文向大家介绍C ++ STL中的多集begin()和end()函数,包括了C ++ STL中的多集begin()和end()函数的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将讨论C ++ STL中multiset::begin()和multiset::end()函数的工作原理,语法和示例。 什么是C ++ STL中的多重集? 多重集是类似于集合容器的容器,这意味着它们以键的形式(类似

  • 将这些视为对象: 查看java文档,对于LinkedList类,LinkedList类中没有迭代器方法的实现,但是,实现是在AbstractSequentialList类中。 listIterator()方法在AbstractList类中实现,AbstractSequentialList的父类,总结一下,如果我没弄错的话,它返回一个不使用节点概念的迭代器对象。 但是方法是在LinkedList类中

  • 在spark中使用mapPartitionsToPair/PairFlatMapFunction时,我在Internet上找到了一个类似的例子 但当康普利 我找到了的声明 所以调用应该是返回一个迭代器。 因此,有人能帮助我如何返回在javaRDD api火花迭代器?谢谢 PS:我试过下面这样的代码,但在集群上不起作用:

  • 如何确定像std::count_if这样的std::函数的类型?理想情况下,我想要以下内容 但由于多种原因,这并不奏效。我可以通过: 但这仍然是不够的。 错误:

  • 由于对std::vector的大多数操作都需要/返回size\t,这就是我用于索引的类型。但现在我已经启用了所有编译器警告,以修复我知道存在的一些有符号/无符号转换问题,这条消息让我感到惊讶: 警告C4365:“参数”:从“size\u t”转换为“\uu w64 int”,有符号/无符号不匹配 它是由以下代码生成的: 我有很多其他类似的消息建议迭代器的算术运算符接受并返回。为什么不?修复所有这些