#include <iostream>
#include <vector>
using namespace std;
//using std::vector;
int main()
{
//1.vector对象的定义和初始化
//vector<T> v1; //vector 保存类型为 T 对象。默认构造函数 v1 为空。
//vector<T> v2(v1); //v2 是 v1 的一个副本。
//vector<T> v3(n, i); //v3 包含 n 个值为 i 的元素。
//vector<T> v4(n); //v4 含有值初始化的元素的 n 个副本。
//一些有自定义构造函数但没有默认构造函数的类,在初始化这种类型的 vector 对象时,程序员就不能仅提供元素个数,还需要提供元素初始值。
//2.vector对象的操作
//v.empty() 如果 v 为空,则返回 true,否则返回 false。
//v.size() 返回 v 中元素的个数。
//v.empty() 如果 v 为空,则返回 true,否则返回 false。
//v.push_back(t) 在 v 的末尾增加一个值为 t 的元素。
//v[n] 返回 v 中位置为 n 的元素。
//v1 = v2 把 v1 的元素替换为 v2 中元素的副本。
//v1 == v2 如果 v1 与 v2 相等,则返回 true。
//!=, <, <=, >, and >= 保持这些操作符惯有的含义。
//vector<int> vec(8);
//vector<int>::size_type size = vec.size();
//string word;
//vector<string> text;
//while (cin >> word)
//{
// text.push_back(word);.
//}
//下标操作不添加元素,只能用于获取已经存在的元素,所以以下写法是错误的
//vector<int> vec1;
//for (vector<int>::size_type index = 0; index != 10; index++)
//{
// vec1[index] = index;
//}
//3.begin和end操作
//由 end 操作返回的迭代器指向 vector 的“末端元素的下一个”。 “超出末端迭代器”(off-the-end iterator) 。表明它指向了一个不存在的元素。
//如果 vector 为空,begin 返回的迭代器与 end 返回的迭代器相同。
//vector<int> vec2(10, 100);
//for (vector<int>::iterator it = vec2.begin(); it != vec2.end(); it++)
//{
// *it = 0;
//}
//4.vector<int>::const_iterator 和 const vector<int>::iterator的区别
//前者是不能用*it来赋值,后者是不能对iterator使用自增自减
//5.迭代器的算术操作
//该表达式用来计算两个迭代器对象的距离,该距离是名为 difference_type 的 signed 类型 size_type 的值,
//这里的 difference_type 是 signed 类型,因为减法运算可能产生负数的结果。该类型可以保证足够大以存储任何两个迭代器对象间的距离。
//iter + n;
//iter - n;
//iter1 - iter2
return 0;
}
C++标准库vector
最新推荐文章于 2023-11-22 22:15:17 发布