`
阿尔萨斯
  • 浏览: 4275337 次
社区版块
存档分类
最新评论

STL vector中的pop_back方法(22)

 
阅读更多
public member function
<vector>

std::vector::pop_back

void pop_back();
Delete last element
Removes the last element in thevector, effectively reducing the containersizeby one.
可以高效地移除vector中的最后一个元素.

This destroys the removed element.

将销毁并移除该元素。

例子:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc,char **argv)
{
	vector<int> vi={10,20,30};
	cout<<"vi is :"<<endl;
	for_each(vi.begin(),vi.end(),[](int i){cout<<i<<" ";});
	vi.pop_back();
	cout<<endl<<"after the pop_back():"<<endl;
	for_each(vi.begin(),vi.end(),[](int i){cout<<i<<" ";});
	cout<<endl<<"try to access vi[2]="<<vi[2]<<endl;
	



}


结果截图:


果然又是逗我呢,还是没有销毁数据阿。



Parameters

none

Return value

none

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// vector::pop_back
#include <iostream>
#include <vector>

int main ()
{
  std::vector<int> myvector;
  int sum (0);
  myvector.push_back (100);
  myvector.push_back (200);
  myvector.push_back (300);

  while (!myvector.empty())
  {
    sum+=myvector.back();
    myvector.pop_back();
  }

  std::cout << "The elements of myvector add up to " << sum << '\n';

  return 0;
}

In this example, the elements are popped out of thevectorafter they are added up in the sum. Output:
The elements of myvector add up to 600

Complexity

Constant.

Iterator validity

Theend iteratorand any iterator, pointer and reference referring to the removed element are invalidated.

通过end()获得的iterator以及其他指向被移除的元素的迭代器,指针,引用都将失效。

例子:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc,char **argv)
{
	vector<int> vi={10,20,30};
	cout<<"vi is :"<<endl;
	for_each(vi.begin(),vi.end(),[](int i){cout<<i<<" ";});
	auto it=vi.end();
	int &ri=vi.back();
	int *p=&vi[2];
	cout<<endl<<"vi.end()="<<*it<<endl;
	cout<<"ri="<<ri<<endl;
	cout<<"*p="<<*p<<endl;
	vi.pop_back();
	cout<<endl<<"after the pop_back():"<<endl;
	for_each(vi.begin(),vi.end(),[](int i){cout<<i<<" ";});
	cout<<endl<<"try to access vi[2]="<<vi[2]<<endl<<endl;
	cout<<"vi.end()="<<*it<<endl;
	cout<<"ri="<<ri<<endl;
	cout<<"*p="<<*p<<endl;
	



}


其他的迭代器,指针以及引用,只要不是指向被移除的那个元素,都有效。


Data races

The container is modified.
The last element is modified. Concurrently accessing or modifying other elements is safe, although iterating ranges that include the removed element is not.

容器将被修改。

最后一个元素将被修改。访问以及修改其他元素都是安全的,但是不包括范围在被移除那个元素的例外。

Exception safety

If the container is notempty, the function never throws exceptions (no-throw guarantee).

Otherwise, it causesundefined behavior.

如果容器非空,不会抛出异常,否则,将会导致未知的错误。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc,char **argv)
{
	vector<int> vi;
	cout<<"vi.pop_back()"<<endl;
	vi.pop_back();
	



}
在我这里似乎没有什么反应啊,难道真的是编译器问题?




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

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

2014-8-16

于GDUT



分享到:
评论

相关推荐

    C++ STL vector 容器介绍

    在STL中,`vector`是一种非常重要的容器,它是一个动态数组,允许在任意位置进行元素的插入和删除,并能保持元素的顺序。 `vector`容器的主要特点包括: 1. 动态数组:`vector`的底层实现是一个动态数组,这意味着...

    STL vector 知识详解

    其中,`vector`是STL中最常用的一种容器,它代表一个动态数组,可以方便地进行元素的添加、删除和访问。下面将详细介绍STL `vector` 的相关知识点。 1. **定义与特性** - `vector` 是一种序列容器,它的元素在内存...

    vector list map pair stl 标准模板库 c++

    在这个主题中,我们将深入探讨四个关键的容器:vector、list、map以及pair,它们都是STL中的重要组成部分。 1. **vector**: - `vector`是一种动态数组,允许在任何位置插入和删除元素。它的元素是连续存储的,...

    心希盼 c++ STL Vector

    2. **访问元素**:`std::vector`提供了`at()`、`[]`、`front()`和`back()`等方法来访问元素。 ```cpp int first_element = vec[0]; // 使用下标访问 int last_element = vec.back(); // 访问最后一个元素 ``` 3. **...

    vector链表实现,STL

    如果将节点变为数组,将会常熟优化。vector链表实现。...拥有iterator,begin,end,rbegin,rend,operator[],push_back,pop_back,push_front,pop_front,size等海量函数以及STL函数支持,也支持RE判断!

    C语言下的vector

    5. **删除元素**:`vector_pop_back()`函数移除并释放`vector`的最后一个元素。`vector_erase()`可能用于移除指定位置的元素,并将后面的元素向前移动填充空缺。 6. **访问元素**:`vector_at()`函数根据索引返回`...

    STL 中的常用的Vector Map Set Sort用法

    `vector`提供了许多便利的方法,如`push_back()`用于在末尾添加元素,`pop_back()`移除最后一个元素,`insert()`插入元素到指定位置,`erase()`删除元素,以及`resize()`改变大小。此外,`vector`还可以通过下标操作...

    vector常用方法

    Vector 是 C++ STL 中的一种容器,用于存储对象数组。以下是 Vector 的常用方法: 1. push_back():在数组的最后添加一个数据。 2. pop_back():去掉数组的最后一个数据。 3. at():得到编号位置的数据。 4. begin...

    C++之STL的vector详解,包括初始化和各种函数:vector的初始化、数据的增删查改等

    vector的详解那篇 一、vector的初始化 ...7、尾部删去 pop_back() 8、删区间 9、删指定位置 10、清空 四、其他接口 1、size()成员函数 2、empty() 3、resize(int num) 4、capacity() 5、reserve(int len) 总结

    清华大学C++课件中vector用法实例

    清华大学C++课件中vector用法实例 本文将详细介绍清华大学C++课件中vector用法实例,涵盖了vector的基本操作、算法和函数对象的使用。...通过本文,读者可以更好地理解C++ STL中的vector容器,并掌握它的使用方法。

    c++STL基本容器用法带程序详解

    vector用于存储对象数组 常用方法 1.push_back 在数组的最后添加一个数据 2.pop_back 去掉数组的最后一个数据 3.at 得到编号位置的数据 4.begin 得到数组头的指针 5.end 得到数组的最后一个单元+1的指针 6.front ...

    关于STL中vector容器的一些总结

    STL中的`vector`是一个非常重要的容器,它作为标准模板库的一部分,提供了类似于动态数组的功能。`vector`允许用户在程序运行时动态地添加或删除元素,与传统的静态数组相比,具有更高的灵活性。 1. `vector`的基本...

    c++中vector的用法详解.doc.docx

    它是 STL(Standard Template Library)的组成部分,提供了多种操作和管理数据的方法。本文将详细介绍 C++ 中 vector 的用法、函数调用和内存管理机制。 vector 的用法 1. 文件包含:在程序开头处加上 `#include ...

    STL 的熟悉与使用.docx

    在这个实验中,主要涉及了STL中的`vector`、`list`容器以及泛型算法`sort`、`find`、`min`、`max`和`erase`等。下面我们将深入探讨这些知识点。 首先,`vector`是STL中最常用的一种动态数组,可以方便地在任意位置...

    第8讲 C++ STL1

    在本讲中,我们将重点讨论几种常用的STL容器:vector、queue、stack、deque以及set。 1. **vector** - `vector`是一个动态数组,可以方便地在末尾添加和删除元素,支持随机访问。声明`vector&lt;int&gt; a`创建了一个...

    STL源码剖析.pdg

    4.2.6 vector 的元素操作:pop_back, erase, clear, insert 123 4.3 list 128 4.3.1 list 概述 128 4.3.2 list 的节点(node) 129 4.3.3 list 的迭代器 129 4.3.4 list 的数据结构 131 4.3.5 list 的构造与...

    vector的概要介绍与分析

    Vector资源描述 ...操作丰富:Vector提供了丰富的成员函数和操作符重载,如push_back()、pop_back()、insert()、erase()等,用于添加、删除和修改元素。 在实际应用中,Vector被广泛用于需要动态数组特性

    STL容器的一些使用简介

    `vector`是一个动态数组容器,提供了`push_back`、`pop_back`、`at`等操作: ```cpp std::vector&lt;int&gt; v; v.push_back(1); v.push_back(2); std::cout (0) ; // 输出为 1 ``` 然后,让我们来谈谈`string`容器。`...

    STL 向量的使用方法—代码

    下面将详细介绍STL向量`vector`的使用方法,并通过代码示例加以说明。 1. **初始化与声明** `vector`的声明方式通常包括元素类型和初始容量。例如,声明一个存储整数的向量: ```cpp std::vector&lt;int&gt; vec; // ...

    vector等容器的用法

    在C++编程中,容器是STL(Standard Template Library,标准模板库)的重要组成部分,用于存储和管理数据。本篇文章将深入探讨`vector`、`list`和`deque`这三种常见容器的用法,特别关注`vector`的详细操作。 `...

Global site tag (gtag.js) - Google Analytics