Составные типы данных

  • Upload
    dasha

  • View
    69

  • Download
    5

Embed Size (px)

DESCRIPTION

Составные типы данных. Составные типы данных. Массивы. Массив - это группа последовательных ячеек памяти, имеющих один и тот же тип int data[4]; Нумерация элементов – от 0 до < размер-1 > data[0]=1; data[1]=2; data[2]=3; data[3]=4; Объявление и инициализация - PowerPoint PPT Presentation

Citation preview

  • - , int data[4];

    0 data[0]=1;data[1]=2;data[2]=3;data[3]=4;

    double v[3]={0.3, 2.2, 2.}; char symbols[]={'a', 'b', 'c', 'd', 'e'};

  • double *data; // data=new double[1000]; // 0-

    // for(int i=0; i

  • ,

    // + double sum(double* m, int n) // double m[] { double s=0.; for(int i=0; i

  • double matrix[3][2]; // 23

    double sum=0.;for(int i=0; i

  • , [i][j], , , [1][0] [2]

    // matrix[3][2]double *matrix=new double[3*2];

    // matrix[i][j]matrix[i*2+j]=0.;

    // matrix[1][0]matrix[1*2+0]=0.;

    delete [] matrix; // .

  • , , , , , ,

    ( )

  • STL (Standard Template Library) : (vector, deque, list); (set, multiset, map, multimap); , , (, queue, stack) , - ,

  • : , ,

    ,

    ,

  • : , ,

  • - "." . 4 5.4.

    #include using namespace std;

    vector x; // x.resize(10); // x.resize(x.size()+100); //

    double sum=0.0;for(int i=0; i

  • ( ) int n=x.size(); x.resize(100); x[i]=5; x.push_back(7); bool res=x.empty(); // x.size() == 0 x.clear(); - x.reserve(200); - , .int n=x.capacity();

    . 5.

  • , (Node) , ,

  • STL

    list example;

    example.push_back(0); // example.push_front(1); // x.insert(x.begin(), 3); //

    ( )

  • "" , list ls;list::iterator it;

    * (*it)=5;

    ++ it++, it--

    it=ls.begin()

    it=ls.end()

  • list x;

    list::iterator it;for(it=x.begin(); it!=x.end(); it++){ sum+=(*it); // }

    it=x.begin();while(it!=x.end()){ sum+=*it; it++;}

    .

  • (deque) , : ( vector) : - capacity() reserve() .

  • (stack) , "last in, first out" (LIFO) , (top)

    stack s;

    s.push(8); // s = 8s.push(7); // s = 7 8s.push(4); // s = 4 7 8

    cout

  • (queue) , "first in, first out" (FIFO) , (front)

    queue q;

    q.push(8); // q = 8q.push(7); // q = 7 8q.push(4); // q = 4 7 8

    cout

  • - "-" ("key-value"), pair

    STLmap , multimap set multiset

  • map map glass;double n=glass["K8"]; , (0)glass["K8"]=1.5; ,

    ( pair) (pair::first) (pair::second) : map::iterator it;for(it=glass.begin(); it!=glass.end(); it++){ cout

  • set

    set glass;map::iterator it;

    glass.insert("K8");glass.insert("K14");glass.insert("K8");

    for(it=glass.begin(); it!=glass.end(); it++){ cout

  • #include using namespace std;

    list x;

    // list::iterator it;for(it=x.begin(); it!=x.end(); it++){ sum+=(*it); }

    // sum=accumulate(x.begin(), x.end(), 0.0);

  • list ls;

    list::const_iterator it;// "8" ls.begin() ls.end()it=find(ls.begin(), ls.end(), "8");

  • , ,

    vector v(100);

    // ls.begin() ls.end() // 0fill(v.begin(), v.end(), 0);// ls.begin() ls.end(), // -1 1replace(v.begin(), v.end(), -1, 1);

  • , , , ,

    vector v(100);

    // sort(v.begin(), v.end());// reverse(v.begin(), v.end());

  • -- ( )

    vector v(100);vector::iterator it=v.begin();

    it++;swap(*v.begin(), *it);

  • #include accumulate - ( )inner_product - ( ) partial_sum - (a, a+b, a+b+c, a+b+c+d, ...)adjacent_difference - (a, b-a, c-b-a, d-c-b-a, ...).