C++类与细节

读书笔记 增加中

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值