STL vector中的cbegin()方法(6)

原文地址:http://www.cplusplus.com/reference/vector/vector/cbegin/
//其实这个和begin差不多,只是具有了const属性,不能用于修改元素而已。
public member function

std::vector::cbegin

const_iterator cbegin() const noexcept;
Return const_iterator to beginning
Returns a const_iterator pointing to the first element in the container.

返回一个const_iterator指向容器的第一个元素。


const_iterator is an iterator that points to const content. This iterator can be increased 

and decreased (unless it is itself also const), just like the iterator returned by vector::begin, but it cannot be used to modify the contents it points to, even if the vector object is not itself const.

一个const_iterator是一种类似于指向常量的迭代器,他们可以被递增或是递减(除非这个iterator本身是常量才不能这样),这就像和begin()返回的iterator一样,只是cbegin()返回的迭代器不能用于修改该元素而已,甚至vector本身并不是const属性,该方法返回的iterator也是不能用于修改元素的.



If the container is empty, the returned iterator value shall not be dereferenced.

如果容器为空,不应该对该iterator解除引用(即对该iterator取*)


Parameters

none

Return Value

const_iterator to the beginning of the sequence.

一个指向序列第一个元素的具有const属性的iterator.


Member type const_iterator is a random access iterator type that points to a const element.

该const_iterator属于随机访问迭代器,指向一个具有const属性的元素(该元素本身可能并不是const的)

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// vector::cbegin/cend
#include 
#include 

int main ()
{
  std::vector myvector = {10,20,30,40,50};

  std::cout << "myvector contains:";

  for (auto it = myvector.cbegin(); it != myvector.cend(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}
Edit & Run


Output:
myvector contains: 10 20 30 40 50

Complexity

Constant.

Iterator validity

No changes.

该方法不会对其他迭代器的有效性造成影响。


Data races

The container is accessed.

该容器应该是可访问的。


No contained elements are accessed by the call, but the iterator returned can be used to access them. Concurrently accessing or modifying different elements is safe.
该方法不会访问容器里的元素,但是返回的这个iterator可以用来访问元素,并且用他们来访问或者是修改不同的元素都是安全的。(这里似乎有点问题?运用const_cast转换?这里似乎转化不了,什么情况?)

Exception safety

No-throw guarantee: this member function never throws exceptions.

The copy construction or assignment of the returned iterator is also guaranteed to never throw

该方法不会抛出异常。

利用复制构造函数或者赋值运算得到该iterator的拷贝也不会抛出异常。

//翻译的不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。

转载请注明出处:http://blog.csdn.net/qq844352155

2014-8-10

于GDUT





你可能感兴趣的:(STL,containers,STL,容器接口系列译文)