C++类与细节

来源:互联网 发布:太极服装淘宝 编辑:程序博客网 时间:2024/05/01 13:16

读书笔记 增加中

1.vector 和string

C++标准定义了两个类vector和string,vector和string类将数组和字符串作为基本类来处理,vector有确定的大小,两个string对象可以用==和<等进行比较,两者都可以用=进行复制

例子:使用vector类存储100个平方值并将基输出
#include <iostream>#include <vector>using namespace std;int main( ){    vector<int> squares( 100 );    for( int i = 0; i < squares.size( ); i++ )        squares[ i ] = i * i;    for( int i = 0; i < squares.size( ); i++ )        cout << i << " " << squares[ i ] << endl;    return 0;}

2.指针

  • 动态对象创建

    IntCell *m;
    m=new IntCell;
    能用自动变量 时候就不用new,当通过new分配地址的对象不再引用时, 就需要使用delete操作将其删除。

  • 指引的赋值和比较
    如果lhs和rhs是指针变量,那么,lhs=rhs使lhs指向rhs所指向的同一个对象。

  • 三种传递参数方法
    double avg(const vector &arr,int n,bool &errorflag);
    arr是vector类型,使用按常量引用调用来传递;
    按值调用来传递;
    引用地址调用。

    3.模板
    常见函数模板与类模板

    4.使用矩阵
    C++使用矩阵 基本思想是使用向量的向量,需要附加的操作符重载的知识。
    代码:一个完整的matrix类

#ifndef MATRIX_H#define MATRIX_H#include <vector>using namespace std;template <typename Object>class matrix{  public:    matrix( int rows, int cols ) : array( rows )    {        for( int i = 0; i < rows; i++ )            array[ i ].resize( cols );    }    const vector<Object> & operator[]( int row ) const//访问函数      { return array[ row ]; }    vector<Object> & operator[]( int row )//修改函数      { return array[ row ]; }    int numrows( ) const      { return array.size( ); }    int numcols( ) const      { return numrows( ) ? array[ 0 ].size( ) : 0; }  private:    vector< vector<Object> > array;};#endif
0 0