zoukankan      html  css  js  c++  java
  • STL vector——c++

    STL,就是c++的标准数据库,今天要讲的就是附属与它的vector的基本应用。

    个人来说,我认为这个东东基本上没有什么用,但是总归得看懂吧。。。

    这是一个动态的数组,可以随时定义它的大小(长度)

    除了用万能头文件(bits/stdc++.h)的人,其它都要加上#include<vector>,如果只用BITS时报错,那就把这个加上吧。

    定义位置:和定义普通数组一样。

    定义方法:vector<数组类型名>数组名;

    如果想定义多维数组,可以:vector<vector<数组类型名> >数组名;

    注意,数组类型名后的两个> >中必须有空格,否则编译器将把它当作>>右移运算处理。

    这是二维的,如果想更多维,可以将数组类型名改为vector<>,这个东东是可以嵌套的。

    定义好了的数组,是从0开始的,并且长度为零,如何设置长度呢?

    一维数组:

        //若长度为n,数组名为a。

        a.resize(n);

        //好了,这是一个从0-(n-1)的数组,如何操作后面再说。

    二位数组:

        //若要大小为n*n,数组名为a。

        a.resize(n);//这样第一维的长度就定好了

        for(int i=0;i<n;i++)a[i].resize(n);//这样每一行的维度就都设置好了,就像二维数组了。过程如图示:

     三位及以后,只要多重循环就行了,本人就不多讲了。

    定义好了数组后,我们就要想如操作它了,以下介绍两种方法:

    1、普通数组操作

        for (int i=0;i<n;i++)scanf("%d",&a[i]);

    就像普通数组一样操作。

    2、迭代器操作

      for (vector<和你要操作的数组一个类型(包括多维)>::iterator 循环变量名=要操作数组名.begin();循环变量名<要操作数组名.end();循环变量名++)scanf("%d",&(*循环变量名));

      如果是多维,额(⊙o⊙)…我就没研究啦。

      样例:

      读入n(回车)1 2 3 4 5,输出1 2 3 4 5。  

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int main()
    {
        scanf("%d",&n);
        vector<int>a;
        a.resize(n);
        for ( vector<int>::iterator it=a.begin();it!=a.end();++it ) scanf("%d",&(*it));
        for ( vector<int>::iterator it=a.begin();it!=a.end();++it ) printf("%d ",(*it));

        return 0;

    }

    既然会使用了,那也要会用,下面介绍几种关于它的基本操作。

    以下所讲的函数,都是以要操作的数组名.函数名()来操作的,就算()里为空,也得加上括号。

     1、push_back(n);//将n添加在数组最后(长度会自动加)

    2、pop_back();//清除数组最后的一个元素。

    3、clear();//野蛮的将整个的长度清零,内容清零

    4、insert(位置(从0开始),内容);在位置插入内容。

    整节课就讲完啦!接下有一道练习题,大家可以做做。

    蛇形方阵

    【问题描述】

    输入n,n≤100。输出n阶蛇形方阵。例如n=5时,输出如下:

    1        2        6        7       15

     3        5        8       14       16

     4        9       13       17       22

    10       12       18       21       23

    11       19       20       24       25

    答案

  • 相关阅读:
    HDoj-2072-字数
    hibou 主界面自己侧滑的定义
    Android得到一个闹钟在第三方
    UILabel,UITextField 以及UIButton应用
    推荐几个好文章
    半年后,我还在路上。
    NGUI 3.5过程(三)Button button
    OpenGL研究2.0 计算圆
    CF 444A(DZY Loves Physics-低密度脂蛋白诱导子图)
    美日高价进口中国非转基因大豆:不仅吃还做药
  • 原文地址:https://www.cnblogs.com/leonqqs/p/7470847.html
Copyright © 2011-2022 走看看