"向量的基本用法vector"
本文将详细探讨C++中的`vector`容器,它是标准模板库(STL)的一部分,用于高效地存储和管理动态大小的数组。在提供的代码示例中,我们看到`vector`如何用于读取文本文件"aaa.txt"中的整数并计算其中重复元素的数量。
首先,`vector<int> s;`定义了一个名为`s`的`vector`,它专门用来存储`int`类型的元素。`vector`的好处在于它可以自动调整大小,因此在不知道确切元素数量的情况下非常有用。
代码中的`ifstream in("aaa.txt");`创建了一个输入文件流对象`in`,用于读取文件"aaa.txt"。接着,`for(int a; in >> a;) s.push_back(a);`循环通过文件流读取每个整数`a`,然后将其添加到`vector``s`的末尾,这得益于`push_back()`函数,它会在容器末尾插入一个新元素。
接下来,代码进入两层嵌套循环,用于查找并计数`vector``s`中重复的元素。外层循环`for(int i=0; i<s.size()-1; ++i)`遍历`vector`的前`n-1`个元素,其中`n`是`vector`的大小。内层循环`for(int j=i+1; j<s.size(); ++j)`从当前外层循环的下一个元素开始,直到`vector`的末尾。如果找到相等的元素(即`s[i]==s[j]`),则增加`pair`的值,表示找到了一对重复的元素。最后,`cout << pair << endl;`打印出重复元素的对数。
这个例子展示了`vector`在处理文件输入、存储动态数据集以及执行迭代操作以进行数据处理时的灵活性。`vector::size()`方法用于获取容器中元素的数量,这是检查循环边界和访问元素的重要工具。此外,通过`vector`的迭代器或索引访问元素,可以轻松地实现各种算法,如搜索、排序和统计。
总结来说,`vector`是C++中一个强大且常用的容器,它提供了动态数组的功能,支持高效地插入和删除元素,并且与STL的其他组件(如算法和迭代器)无缝集成,使得编写复杂的程序变得更加简单。在实际编程中,`vector`常被用于处理不确定大小的数据集合,如从文件读取的数据或用户输入。