向量是一种数组,可删减可替换。使用向量需从库中调用<vector>。这里用向量替代数组进行操作。
向量的使用如下:
1 声明std 2 尖括号标注向量类型 3 紧随其后是变量名 4 变量名可以加上括号,也可以不加,不写出来默认为(0,0),前一个数是向量的元素数,后一个数是向量的数的“内容”。
std::vector<int>data;
从向量放东西可采用push 一般用back表示从后面加入,如果是front就是从前面 如 data.push_back(x),x就是那个要加入的元素。向量位数的表示是从0 到 data.size()-1,如果要特地查找某一位用[]或.at() 来查找,区别是at更安全,一旦at()里的数字超出向量长度,程序会停止而不会弹出错误。
这已经涉及迭代器的内容了,迭代器的机制比较复杂,就不说了。:-)总之迭代器有头有尾,头是begin()尾是end()。
下面介绍算法,<algorithm>这是C++自带的内置算法,对于一些特别面向数值的如max min等的函数则储存在<numeric>里。
如果要对vecrot排序就这样写 std::sort(xxx.begin(),xxx.end());
如果要复制vector就这样写 std::copy(xxx.begin(),xxx.end(),copy.begin()) 则copy是vector的完全副本。
可以调用系统的迭代器来帮助我们处理vector。<iterator>
可以把数组的某一位直接用std::vector<int>::iterator i(data.begin()) 表示,然后用迭代器移位(++i)来向后移位。
同样,我们可以使用copy 和输入输出流: istream_iterator<int>(std::cin) 这里会产生一个数组,分别是输入的数字,以空格为分割。如果要结束这个输入则加上一句istream_iterator<int>()即可。然后把这些东西插入向量data中 用 std::back_inserter(data)
打印也很方便 std::copy(data.begin(),data.end(),ostream_iterator<int>(std::cout, "\n")