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"是一个Unity插件,它利用protobuf和STL标准模板库来处理3D模型数据,使得在Unity中读取和操作STL模型变得更加简单。开发者可以借此提升项目开发效率,特别是当需要频繁处理3D模型时。
这些算法独立于数据结构和类型,可在各种数据结构上使用,从简单的数组到复杂的容器。 在实际使用STL时,我们需要包含对应的头文件。由于STL的头文件不使用`.h`后缀,如`<string>`、`<iterator>`和`<algorithm>`。...
有五种类型的迭代器:输入迭代器、输出迭代器、前向迭代器、双向迭代器和随机访问迭代器,每种迭代器支持的操作不同,但都遵循一种一致的接口,使得使用迭代器操作各种容器变得简单。 STL中的算法是一组强大的工具...
《Python库numpy_stl-2.4.1的深度解析》 ...通过简单的接口,我们可以高效地读取、操作和保存STL模型,为3D建模和分析工作带来了极大的便利。无论是初学者还是经验丰富的开发者,numpy_stl都是值得信赖的Python库选择。
- 作为简单的动态数组使用,如在循环中不断添加元素。 - 存储和操作动态大小的数据集,如计算斐波那契数列。 - 作为函数参数传递,可以传递整个序列,而不仅仅是数据的拷贝。 总之,STL `vector` 是C++编程中...
例如,OTL可能提供了模板化的SQL查询接口,使得执行数据库操作就像操作STL容器一样简单。通过将数据库操作和C++的面向对象特性相结合,OTL能够提供强大而灵活的数据库编程能力。在实际项目中,开发者可以创建自己的...
pair是一个简单的容器,用于存储两个相关的值,通常在需要临时存储或传递两个值时使用。 学习和熟练掌握STL的这些容器和迭代器,将极大地提高你的C++编程效率和代码质量。在实际编程中,应根据具体需求选择合适的...
- SGI STL设计时考虑了异常安全,例如在内存分配失败时,`vector`应该能够恢复到插入或删除操作前的状态,这通常通过使用临时对象和资源管理技术实现。 8. **拷贝语义**: - 深拷贝和浅拷贝是C++中的重要概念。`...
下面是一个简单的示例,展示如何使用`std::vector`存储和打印字符串: ```cpp #include <vector> #include int main() { // 创建一个vector,用于存储字符串 std::vector<std::string> vec; // 添加字符串到...
通过理解和熟练使用`std::vector`,开发者可以更有效地在C++中处理动态数据集,无论是简单的数据操作还是复杂的算法实现,`vector`都能提供强大的支持。在实际项目中,根据具体需求选择合适的数据结构和操作方式,将...
STL容器提供了多种数据结构供程序员使用,主要包括序列式容器和关联式容器两大类: - **序列式容器**:如`vector`、`list`、`deque`等,这些容器的特点是元素按照顺序存储,支持快速的随机访问。 - **vector**:...
1. **数据结构**:STL包含了几种核心的数据结构,如vector(动态数组)、list(双向链表)、deque(双端队列)、set(红黑树实现的集合)、map(红黑树实现的键值对映射)等。这些容器提供了丰富的操作接口,方便...
### 有效使用STL的关键技巧 #### 条款1:仔细选择你的容器 - **核心概念**:在STL中,不同的容器具有不同的特性和用途。例如,`vector`提供了随机访问的能力,而`list`则非常适合频繁插入和删除操作。 - **应用...
根据给定文件的部分内容,我们可以总结出关于C++标准模板库(STL)中`vector`容器的相关知识点。本文主要关注于`vector`的基础概念、不同类型的初始化方式以及常用的操作方法。 ### 一、Vector简介 #### 1.1 介绍 -...
- 当排序元素数量较少时(如小于10个),可以考虑使用插入排序等简单算法,因为它们在小规模数据上的表现可能会更好。 2. **搜索算法**: - `find`用于查找容器中的特定元素。 - `binary_search`在有序容器中...
解析ASCII格式相对简单,只需按照文件结构逐行读取;而二进制格式则需要理解其结构,提取顶点信息。通常,解析库会自动处理这两种格式。 3. **构建3D模型**:解析后的数据包含一系列三角形,每个三角形由三个顶点...
STL除了map和set,还有vector(动态数组)、list(双向链表)、deque(双端队列)等容器,它们各自有其特点和适用场景,可以根据实际需求选择合适的容器。 通过学习和熟练掌握STL中的map和set,开发者可以编写出...
5. **Lambda表达式**:C++11引入的lambda表达式使得创建临时函数对象变得简单,更方便地在STL算法中使用。 6. **迭代器失效**:当对容器进行插入、删除操作时,要特别注意迭代器可能会失效,避免在操作后使用可能已...