shmeiwseis gia th C++

  • Published on
    05-Nov-2015

  • View
    217

  • Download
    2

DESCRIPTION

C++ programming

Transcript

  • pi pi

    pi C++

  • Copyright c 2004 , stamatis@iesl.forth.gr

    pi LaTEX2.pi (c , -pi ).

    pipi 23 2006. pi pi- http://www.materials.uoc.gr/tetycpp

  • i

    1 11.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    2 pi 52.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    2.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2.2 pi . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1 pi . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.2 pi . . . . . . . . . . . . . . . . . . . . . . . . 72.2.3 pi . . . . . . . . . . . . . . . . . 82.2.4 pi . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.5 pi . . . . . . . . . . . . . . . . . . . . . . . 102.2.6 void . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.7 Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2.3 pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.4 . . . . . . . . . . . . . . . . . . . . 132.5 . . . . . . . . . . . . . . . . . . . . . . . . . 14

    2.5.1 typedef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.5.2 pi . . . . . . . . . . . . . . . . . . . . . . . 152.5.3 pi . . . . . . . . . . . . . 152.5.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2.6 pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.6.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.6.2 (struct) . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    2.7 . . . . . . . . . . . . . . . . . . . . . . . . . . 212.7.1 . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    2.8 (namespace) . . . . . . . . . . . . . . . . . . . . . 262.9 (streams) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    2.9.1 . . . . . . . . . . . . . . . . . . . . . . . . . . 282.9.2 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.9.3 . . . . . . . . . . . . . . . . . . . 292.9.4 . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    2.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    i

  • ii

    3 373.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    3.1.1 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.1.2 ?: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.1.3 switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.1.4 goto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.1.5 assert() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.2.1 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.2.2 do while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.2.3 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.2.4 continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.2.5 break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    3.3 . . . . . . . . . . . . . . . . . . . . . . . . . 433.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    4 494.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.4 . . . . . . . . . . . . . . . . . . . . 54

    4.4.1 . . . . . . . . . . . . . . . . . . . . . . 544.4.2 pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574.4.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574.4.4 . . . . . . . . . . . . . . . . . . . . . . 61

    4.5 main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.6 overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.7 template . . . . . . . . . . . . . . . . . . . . . . . . . 64

    4.7.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.8 inline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.9 pi . . . . . . . . . . . . . . . . . . . . . . . . . . . 684.10 C++ . . . . . . . . . . . . . . . . . . . 684.11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    4.11.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    5 Standard Library 755.1 . . . . . . . . . . . . . . . . . . 76

    5.1.1 (Pair) . . . . . . . . . . . . . . . . . . . . . . . . . . 765.1.2 . . . . . . . . . . . . . . . . . . . . . 765.1.3 , . . . . . . . 77

    5.2 (containers) . . . . . . . . . . . . . . . . . . . . . . . . . 795.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795.2.2 vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845.2.3 deque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.2.4 list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915.2.5 set multiset . . . . . . . . . . . . . . . . . . . . . . . . . 955.2.6 map multimap . . . . . . . . . . . . . . . . . . . . . . . 99

    5.3 (algorithms) . . . . . . . . . . . . . . . . . . . . . . . . 1035.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

  • iii

    6 1136.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

    6.2.1 Constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206.2.2 Destructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206.2.3 Copy constructor, assignment operator . . . . . . . . . . . . 1206.2.4 Other operators, overloading . . . . . . . . . . . . . . . . . . 120

    6.3 template . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

    pi . . . pi! 121

    Fortran C 125.1 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125.2 Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . 126

    pi 129

    135

    137

    138

  • iv

  • pi pipi pi pi pi ISO C++, , pi pi.

    C++ , , pi pi pi pi pi , pi pi Fortran C. pipi C++ pi pi . pipi pi C++pi Standard 1998, , , pi pi, pi, pi pi pi pi pi pi pi pi.

    pi pi, pi C++ C. pi STL pi . pi pi pi pi C++ pi pi ( pi pi ).

    v

  • vi

  • 1

    pi pi . pi- pi, pi pi, pi pipi pi . , pi , pi pi pi pi pi pi pi , , pi .

    pi pi pi(Fortran, C, C++) pi pi, , - pi, pi pi ( pi) pi. pi pi - pi pi pi pi. pi , pi pi pi , pi , - pi pi . pi pi pi pi . pi - pi pi pi pi, ,pi pi .

    pi pi C++ pi . pi C++ pi pi pipi .

    1.1

    pi pi pi - pi : pi pi . pi pi C++ pi pipi - , :

    1

  • 2 1.

    #include

    /*main:

    Takes no arguments.Prompts for a real number and prints its square.Returns 0.

    */intmain() {

    double a; // Declare a real variable

    // Print text on screenstd::cout > a; // Get value from keyboard

    // Print text on screenstd::cout

  • 1.1. 3

    pi . pipi pi . pi pi - , pi main(). pi pi main() pi pi pi .

    double a; pi pi () 15 a (2.2.5). C++ pipi , pi pi compiler, pi pi.

    std::cin std::cout pipi pi , , standard input standard out-put . () pi std::cin ( ) pi pi pi pi . pipi pipi, pi, pi standard header (2.9). - , pi pi, C++ format / . pi - pi pi pi pipi., , pi pi.. pi pi pi (2.9.4).

    pi (") pi , C-style string. pi pi - pi \n (pi ), pi pi . pi - () pi pi (pi pi , (\)) pi pi pi (character literal, 2.2.2).

    (*) pi pipi pi pipi.

    (;) pi (, , - ). pi pipi ( pi #) ;.

    C++ pi pi , pi. pi pi - C++ . ( pi pi - ). pi, , pi pi (+=, ==,

  • 4 1.

    1.2

    1. , pi.2

    2. pipi pi pi pi . pi +,-,*,/ ( pi ). pi pi pi .

    3. pi pi C++ ;#include main(){std::cout > a >> bcout

  • 2

    pi

    2.1

    2.1.1

    C++ pi . pi compiler pi

    // , pi /* */ pi pi

    pi .

    /* */ pi pi pipi pi tab, . pi pi pi .

    :

    // This is a commentint j; // Here is a declaration/* Let us make

    an ugly multi-linecomment.

    */

    pi pi pi , , pi , pi pi.

    pipi pi- . , pipi pi : compiler pi pi- #if 0.....

    #endif

    pi pipi pi, pi (pipi ). pi, # pipi pi pi pipi-.

    5

  • 6 2.

    2.1.2

    , , pi, pi. C++ pipi (az,AZ), (09), underscore (_). pi . pi pi pi C++ , pipi pi . pi underscore (_) pi pi- pi compiler pi pi pi pi.pi, pipi pi C++ (Keywords, 2.1) , , pi pi pi-, pi.

    :

    pi :ena lathos onoma, pali_latho$, 1234qwer, delete, .onoma+

    pi :timi, value12, ena_onoma_me_poly_megalo_mikos, sqrt, Delete

    C++ Keywordsand and_eq asm auto bitand bitorbool break case catch char classcompl const const_cast continue default deletedo double dynamic_cast else enum explicitexport extern false float for friendgoto if inline int long mutablenamespace new not not_eq operator oror_eq private protected public register reinterpret_castreturn short signed sizeof static static_caststruct switch template this throw truetry typedef typeid typename union unsignedusing virtual void volatile wchar_t whilexor xor_eq

    2.1: C++.

    2.2 pi

    C++ pi pi pi pi - pi pi :

    2.2.1 pi

    pi (bool) pi pi- pi pi pi (pi.. /, /,. . . ). , pi.. a, :

    bool a;

  • 2.2. 7

    pi pi pi true false. pi pi, a pi pi pipi, pi (4.4), ( 6) namespace (2.8), pi (global) false.

    pi pi-:bool a = true;

    , ,bool a(true);

    pi bool pi pi pi, pi pi , pi, . pi , true 1 false 0. , pi true 0 false.pi, , 4.3, pi pi true false.

    2.2.2 pi

    pi (char) pi.. c, :char c;

    pi pi pi pi pi pi, pi, ASCII.

    char c = a;

    , ,char c(a);

    pi c , a. pi pi- () (") pi C-style string1 pi pi pi pi char.

    pi pi pi. 2.2, pi pi ( ) pipi. ..char newline = \n;char bell = \a;char alpha = \141; // alpha = a in ASCIIchar Alpha = \x61; // Alpha = a in ASCII

    pi pi C-style string.

    : 1pi array of const char.

  • 8 2.

    std::cout

  • 2.2. 9

    2.2.4 pi

    (pi.. pi int) :int i;

    pipi pi , namespace, i pi 0, pi. (pi.. 10) int i = 10;

    , , int i(10);

    pi pi pi pi. pi int pi 16 bi-ts, pi pi pi

    [215, 215

    )=

    [32768, 32768) . pipi pi pi std::numeric_limits::min() std::numeric_limits::max(), pi header :#include #include

    intmain() {std::cout

  • 10 2.

    pi long int pi L l :

    12L, 0xBABEL, 665l

    pi U u pi unsigned int, - pipi pipi unsigned long int.

    2.2.5 pi

    C++ pi pi : pi (float),pi (double) (long double). float double pi long double. pi float pi pi std::numeric_limits::digits10 pi std::numeric_limits::min() std::numeric_limits::max() pi header . pi. std::numeric_limits::min() pi pi pi- .

    pi pi , -pi pi pi double, pipi pi pi pi.

    , pi pi ( pi) pi pi double. pi pi pi . e E, pi, pi 10 pipipi pi e/E :

    2.034, 0.23, .44, 23., 2e 4 ( 0.0002), 2.3E2 ( 230.0) .

    F f pi float L l pi long double.

    2.2.6 void

    pi void pi pi pi- pipi. pi pi pi -, pi pi . pi void* ( void) pi. pi pi - pi .

  • 2.3. 11

    2.2.7 Enumeration

    Enumeration () pi pipi pi pi pi. ..

    enum Color {RED, GREEN, BLUE};

    pipi pi, pi Color, pi pi pi pi pi: RED, GREEN, BLUE. pi :

    Color c = RED;

    switch (3.1.3), compiler pi pi pi.pi, pi pi (4.4).

    pi : pi pi pi pi 0. pi RED 0, GREEN 1 BLUE 2. pi pi pi pipi, pi pi pi 1 pi pi :

    enum Color {RED, GREEN=5, BLUE}; // RED = 0, GREEN = 5, BLUE = 6

    pi . -, pi enum . :

    color d = 2; // Error

    2.3 pi

    pi pi C++ pi class template, pi pi .

    C++ pipi pi header

    #include

    pi pipi. (pi.. z) pi, pi

    pi double :

    std::complex z; // z = 0.0 + 0.0 i

    , double pi pi pipi pi (int, float, long double,. . . ). -, 0, pi pi ,pi pi pi pi pi STL.

    pi pi pi pi :

  • 12 2.

    std::complex z1(3.41); // or z1 = 3.41;// z1 = 3.41 + 0.0i

    std::complex z2(3.0,2.0);// z2 = 3.0 + 2.0i

    std::complex z3(z2); // or z3 = z2;// z3 = z2

    std::complex z4(std::polar(2.0));// z4 = 2.0 exp(0.0i)

    std::complex z5(std::polar(2.0,0.75));// z5 = 2.0 exp(0.75i)

    std::polar() pi (magnitude) pi (phase angle) ( rad) .

    +,-,*,/ +=,-=,*=,/= (2.7) - , pi pi pi . pi, C++ (4.1) , pi pi. std::abs() pi . pipi, std::norm() pi std::arg() z = + i

    std::abs(z) =2 + 2,

    std::norm(z) = zz? 2 + 2,std::arg(z) = arctan(/).

    , std::conj() pi . pipi pi pipi pi ,pi, pi pi pi .

    pi z pi , std::real(z) std::imag(z), std::complex: z.real() z.imag().

    pi pi pipi , pi compiler:std::complex z(3.0,1.0);// z = 3.0 + 1.0i

    z = std::complex(z.real(), 3.7);// z = 3.0 + 3.7i

    z = std::complex(2.3, std::imag(z));// z = 2.3 + 3.7i

    z = 5.0; // or z = std::complex(5.0);// z = 5.0 + 0.0i

    z = std::complex(-1.0, 2.0);// z = -1.0 + 2.0i

  • 2.4. 13

    (pi,)

    pi >> pi pi :

    (pi,)(pi)pi

    pi, , typedef (2.5.1).

    2.4

    C++ pi pi - ( 2.3). pi pi

    == != > < >= 2.0 true 2!=1+1 false. pi pi .

    , pi -, (==, ) (!=, ). pi pi , pi pi .

    C++ pi !(NOT), && (AND), || (OR).

    pi pi, pi pi:

    ! pi :

    ! (4 > 3) false. ! (4 < 3) true.

    pi && true pi true. pipi false:

    (4 > 3) && (3.0 > 2.0) true (4 < 3) && (3.0 > 2.0) false

    || pi true pi pi true, false:

    (4 > 3) || (3.0 < 2.0) true (4 < 3) || (3.0 < 2.0) false

  • 14 2.

    C++, pi pi bool:bool a = 3==2;bool b = ( (i > 0) && (i < max) );

    C++: pi pi pi pi pi (short-circuit evaluation). .. (i < 0) || (i > max) i < 0 true pi , pi pi. , (i < 0) && (i > max)

    i >= 0 false pi i > max. pi pipi pi pi pi- .

    2.5

    2.5.1 typedef

    pi , pi-. pi , pi , pi typedef. , pi pi.. std::complexpi pi pi complex pi :typedef std::complex complex;

    pi pi :complex z;

    typedef pi -pi pi pi : pi pi pi . pi double. pi pi pi pi , pipi pi double pi float. , - pi pi real pi pi typedef double real;

    pi pi float :typedef float real;

    typedef pi C++ pi pi- template functions (4.7).

  • 2.5. 15

    2.5.2 pi

    pi - pi, compiler pi pi pi , , pi pi pipi pi pi pi . pi pi pi const pi pi ( ) :

    double const pi = 3.141592653589793;int const maximum = 100;

    pi pi const pi .

    pi pi . pi pi (pi..pi pi, ) pi pipi pipi pi .

    2.5.3 pi...

Recommended

View more >