博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
9.数组和向量
阅读量:7001 次
发布时间:2019-06-27

本文共 1001 字,大约阅读时间需要 3 分钟。

hot3.png

 向量是一种数组,可删减可替换。使用向量需从库中调用<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")      

转载于:https://my.oschina.net/xueyang/blog/204756

你可能感兴趣的文章