c++ STL 【更新...】
发布时间:2020-12-16 09:18:08 所属栏目:百科 来源:网络整理
导读:STL ?STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些 模板类和函数可以实现多种流行和常用的算法和数据结构 ? 核心包括以下三个组件 : ? 容器(Containers) 容器是用来 管理某一类对象的集合 。C++ 提供了各种不同类型的
STL?STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构 ?核心包括以下三个组件: ?
? 这三个组件都带有丰富的预定义函数,帮助我们通过简单的方式处理复杂的任务 ? 举例:向量容器【与数组十分相似,唯一不同的是,向量在需要扩展大小的时候,会自动处理它自己的存储需求】 #include <iostream> #include <vector> using namespace std; int main() { // 创建一个向量存储 int vector<int> vec; int i; // 显示 vec 的原始大小 cout << "vector size = " << vec.size() << endl; // 推入 5 个值到向量中 for(i = 0; i < 5; i++){ vec.push_back(i); } // 显示 vec 扩展后的大小 cout << "extended vector size = " << vec.size() << endl; // 访问向量中的 5 个值 for(i = 0; i < 5; i++){ cout << "value of vec [" << i << "] = " << vec[i] << endl; } // 使用迭代器 iterator 访问值 vector<int>::iterator v = vec.begin(); while( v != vec.end()) { cout << "value of v = " << *v << endl; v++; } return 0; } ? 结果: vector size = 0 extended vector size = 5 value of vec [0] = 0 value of vec [1] = 1 value of vec [2] = 2 value of vec [3] = 3 value of vec [4] = 4 value of v = 0 value of v = 1 value of v = 2 value of v = 3 value of v = 4 ? 关于上面实例中所使用的各种函数,有几点要注意:
? ? ? C++ STL 之 vector 的 capacity 和 size 属性区别size 是当前 vector 容器真实占用的大小,也就是容器当前拥有多少个容器。 capacity 是指在发生 realloc 前能允许的最大元素数,即预分配的内存空间。 当然,这两个属性分别对应两个方法:resize() 和 reserve()。
此时切记使用 [] 操作符访问容器内的对象,很可能出现数组越界的问题。 #include <iostream> #include <vector> using std::vector; int main(void) { vector<int> v; std::cout<<"v.size() == " << v.size() << " v.capacity() = " << v.capacity() << std::endl; v.reserve(10); std::cout<<"v.size() == " << v.size() << " v.capacity() = " << v.capacity() << std::endl; v.resize(10); v.push_back(0); std::cout<<"v.size() == " << v.size() << " v.capacity() = " << v.capacity() << std::endl; return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |