`
xitong
  • 浏览: 6313622 次
文章分类
社区版块
存档分类
最新评论

STL------vector的简单使用

 
阅读更多
vector类似与数组,但更加安全,且长度是可变的。vector能存储同种类型的元素。
empty函数判断vector是否为空
clear函数清空vector
maxsize函数返回vector最大存储量
begin函数返回vector的的第一个元素的迭代器指针
end函数返回vector的最后一个元素的下一个位置的迭代器指针
push_back函数在vector尾部添加一个元素
pop_back函数删除最后一个元素
insert函数在给定位置插入一个或多个元素
erase函数删除一个或多个元素
front函数取第一个元素
back函数取最后一个元素


vector需要注意的地方:当vector内容发生改变,如添加、删除元素之后,要使用begin和end重新获取迭代器指针,因为添加、删除元素之后迭代器指针发生了变化

//vectortest.cc
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;

class Student
{
    private:
	char name[100];
    public:
	Student(const char *_name)
        {
	    strcpy(name, _name);
        }
	char* getName()
	{
	    return name;
	}
	void printName()
	{
	    cout << name << endl;
	}
};

int main()
{
    vector<Student> students;
    students.push_back(Student("zhangsan"));
    students.push_back(Student("hahaya"));
    students.push_back(Student("lisi"));

    vector<Student>::iterator itr = students.begin();
    //删除增加内容后要重新使用begin和end获取迭代器
    //删除lisi
    while(itr < students.end())
    {
	Student s1 = *itr;
	if(strcmp(s1.getName(), "lisi") == 0)
	{
	    students.erase(itr);
	}
	//s1.printName();
	itr++;
    }

    itr = students.begin();
    while(itr < students.end())
    {
	Student s1 = *itr;
	s1.printName();
	itr++;
    }
    return 0;
}

分享到:
评论

相关推荐

    pb_Stl-master.zip

    总之,"pb_Stl-master.zip"是一个Unity插件,它利用protobuf和STL标准模板库来处理3D模型数据,使得在Unity中读取和操作STL模型变得更加简单。开发者可以借此提升项目开发效率,特别是当需要频繁处理3D模型时。

    三十分钟掌握STL----STL学习文档

    这些算法独立于数据结构和类型,可在各种数据结构上使用,从简单的数组到复杂的容器。 在实际使用STL时,我们需要包含对应的头文件。由于STL的头文件不使用`.h`后缀,如`&lt;string&gt;`、`&lt;iterator&gt;`和`&lt;algorithm&gt;`。...

    stl-boost-c++

    有五种类型的迭代器:输入迭代器、输出迭代器、前向迭代器、双向迭代器和随机访问迭代器,每种迭代器支持的操作不同,但都遵循一种一致的接口,使得使用迭代器操作各种容器变得简单。 STL中的算法是一组强大的工具...

    Python库 | numpy_stl-2.4.1-cp27-cp27m-macosx_10_11_x86_64.whl

    《Python库numpy_stl-2.4.1的深度解析》 ...通过简单的接口,我们可以高效地读取、操作和保存STL模型,为3D建模和分析工作带来了极大的便利。无论是初学者还是经验丰富的开发者,numpy_stl都是值得信赖的Python库选择。

    STL vector 知识详解

    - 作为简单的动态数组使用,如在循环中不断添加元素。 - 存储和操作动态大小的数据集,如计算斐波那契数列。 - 作为函数参数传递,可以传递整个序列,而不仅仅是数据的拷贝。 总之,STL `vector` 是C++编程中...

    STL-OTL 开发简介

    例如,OTL可能提供了模板化的SQL查询接口,使得执行数据库操作就像操作STL容器一样简单。通过将数据库操作和C++的面向对象特性相结合,OTL能够提供强大而灵活的数据库编程能力。在实际项目中,开发者可以创建自己的...

    第6次课第4章STL1(vector-set-map-pair).pptx

    pair是一个简单的容器,用于存储两个相关的值,通常在需要临时存储或传递两个值时使用。 学习和熟练掌握STL的这些容器和迭代器,将极大地提高你的C++编程效率和代码质量。在实际编程中,应根据具体需求选择合适的...

    SGI STL vector相关源码

    - SGI STL设计时考虑了异常安全,例如在内存分配失败时,`vector`应该能够恢复到插入或删除操作前的状态,这通常通过使用临时对象和资源管理技术实现。 8. **拷贝语义**: - 深拷贝和浅拷贝是C++中的重要概念。`...

    STL实践指南-pdf

    下面是一个简单的示例,展示如何使用`std::vector`存储和打印字符串: ```cpp #include &lt;vector&gt; #include int main() { // 创建一个vector,用于存储字符串 std::vector&lt;std::string&gt; vec; // 添加字符串到...

    example-of-use-vector.zip_vector

    通过理解和熟练使用`std::vector`,开发者可以更有效地在C++中处理动态数据集,无论是简单的数据操作还是复杂的算法实现,`vector`都能提供强大的支持。在实际项目中,根据具体需求选择合适的数据结构和操作方式,将...

    stl泛型编程--视频教程,讲的比较细

    STL容器提供了多种数据结构供程序员使用,主要包括序列式容器和关联式容器两大类: - **序列式容器**:如`vector`、`list`、`deque`等,这些容器的特点是元素按照顺序存储,支持快速的随机访问。 - **vector**:...

    source-stl.rar_STL 源码_stl source_stl 代码

    1. **数据结构**:STL包含了几种核心的数据结构,如vector(动态数组)、list(双向链表)、deque(双端队列)、set(红黑树实现的集合)、map(红黑树实现的键值对映射)等。这些容器提供了丰富的操作接口,方便...

    effective stl stl 技巧

    ### 有效使用STL的关键技巧 #### 条款1:仔细选择你的容器 - **核心概念**:在STL中,不同的容器具有不同的特性和用途。例如,`vector`提供了随机访问的能力,而`list`则非常适合频繁插入和删除操作。 - **应用...

    02C STL总结-基于算法竞赛.pdf

    根据给定文件的部分内容,我们可以总结出关于C++标准模板库(STL)中`vector`容器的相关知识点。本文主要关注于`vector`的基础概念、不同类型的初始化方式以及常用的操作方法。 ### 一、Vector简介 #### 1.1 介绍 -...

    stl使用选择标准

    - 当排序元素数量较少时(如小于10个),可以考虑使用插入排序等简单算法,因为它们在小规模数据上的表现可能会更好。 2. **搜索算法**: - `find`用于查找容器中的特定元素。 - `binary_search`在有序容器中...

    STL3D文件计算体积、面积、长宽高

    解析ASCII格式相对简单,只需按照文件结构逐行读取;而二进制格式则需要理解其结构,提取顶点信息。通常,解析库会自动处理这两种格式。 3. **构建3D模型**:解析后的数据包含一系列三角形,每个三角形由三个顶点...

    STL使用简易说明

    STL除了map和set,还有vector(动态数组)、list(双向链表)、deque(双端队列)等容器,它们各自有其特点和适用场景,可以根据实际需求选择合适的容器。 通过学习和熟练掌握STL中的map和set,开发者可以编写出...

    C++ STL 使用手册

    5. **Lambda表达式**:C++11引入的lambda表达式使得创建临时函数对象变得简单,更方便地在STL算法中使用。 6. **迭代器失效**:当对容器进行插入、删除操作时,要特别注意迭代器可能会失效,避免在操作后使用可能已...

Global site tag (gtag.js) - Google Analytics