C++ begin( ) cbegin( ) end() cend()区别

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ begin( ) cbegin( ) end() cend()区别相关的知识,希望对你有一定的参考价值。

1.iterator,const_iterator作用:遍历容器内的元素,并访问这些元素的值。iterator可以改元素值,但const_iterator不可改。跟C的指针有点像。
2.const_iterator 对象可以用于const vector 或非 const vector,它自身的值可以改(可以指向其他元素),但不能改写其指向的元素值。
3.cbegin()和cend()是C++11新增的,它们返回一个const的迭代器,不能用于修改元素。

#include <iostream>
#include <set>

using namespace std;

int main()
{
	
    // cbegin/cend(c++11): Returns a const_iterator pointing to the first element in the container/
	// Returns a const_iterator pointing to the past-the-end element in the container
	std::set<int> myset = { 50, 20, 60, 10, 25 };
 
	std::cout << "myset contains:";
	for (auto it = myset.cbegin(); it != myset.cend(); ++it)
		std::cout << ' ' << *it;
	
	std::cout << '\\n';
	
	auto a = myset.find(10000);
	std::cout << *a;
 
	std::cout << '\\n';

	system("pause");
	return 0;
}

 


原文链接:https://blog.csdn.net/u010987458/article/details/70949112

以上是关于C++ begin( ) cbegin( ) end() cend()区别的主要内容,如果未能解决你的问题,请参考以下文章

cbegin()/cend() 与 constBegin()/constEnd()

unordered_map cbegin()+ number //常量复杂度?

STL::list

c++ primer note

C++ std::set 取第一个元素

为 C++ 选择 begin() 和 end()