#include <iostream>
#include <vector>
#include <string>
using namespace std;

// 函数声明 
void output1(vector<string> &);  
void output2(vector<string> &);  

int main()
{
    vector<string>likes, dislikes; // 创建vector<string>对象likes和dislikes
    
    // 为vector<string>数组对象likes添加元素值 ( favorite book, music, film, paintings,anime,sport,sportsman,etc) 
    // 补足代码 
    // 。。。 
    likes.push_back("Crocus_sativus");
    likes.push_back("Manjusaka");
    likes.push_back("Oncidium_hybridum");
    likes.push_back("Oenothera_biennis");
    
    cout << "-----I like these-----" << endl;
    // 调用子函数输出vector<string>数组对象likes的元素值 
    // 补足代码
    // 。。。 
    output1(likes); 
    
    // 为vector<string>数组对象dislikes添加元素值 
    // 补足代码 
    // 。。。 
    dislikes.push_back("肥宅");
    dislikes.push_back("キモヲタ");
    dislikes.push_back("Fat_otaku");
    
    cout << "-----I dislike these-----" << endl;
    // 调用子函数输出vector<string>数组对象dislikes的元素值 
    // 补足代码
    // 。。。 
    output2(dislikes);

    
    
    
    // 交换vector<string>对象likes和dislikes的元素值 
    // 补足代码
    // 。。。 
    likes.swap(dislikes);
    
    
    cout << "-----I 不可能 likes these-----" << endl;
    // 调用子函数输出vector<string>数组对象likes的元素值 
    // 补足代码
    // 。。。 
    output1(likes);
    
    cout << "-----I do likes these-----" << endl;
    // 调用子函数输出vector<string>数组对象dislikes的元素值 
    // 补足代码
    // 。。。 
    output2(dislikes);
        
                        
    return 0;
}


// 函数实现 
// 以下标方式输出vector<string>数组对象v的元素值  
void output1(vector<string> &v) {
    // 补足程序
    // 。。。 
    int n=0;
    for(;n<v.size();n++)
    {
        cout<<v[n]<<' ';
    }
    cout<<endl<<endl<<endl<<endl;
}

// 函数实现
// 以迭代器方式输出vector<string>数组对象v的元素值 
void output2(vector<string> &v) {
    // 补足程序
    // 。。。 
    vector<string>::iterator read_=v.begin();
    for(;read_<v.end();++read_)
    {
        cout<<*read_<<' ';
    }
    cout<<endl<<endl<<endl<<endl;
}
内容1

 

 

#include<iostream>
using namespace std;
int main()
{
    int *p;   //定义的指针p没有指向任何地址 
//增加:          //无法向未知的地址赋值
    int a;
    p=&a;
    *p=9;      
    cout<<"p的值是"<<*p;
    return 0;
 } 
内容2-习题6-17
#include<iostream>
using namespace std;
int fnl()
{
    int *p=new int(5);
    return *p;          //没有释放新申请的内存空间
//加上: 
   delete p;
 } 
int main()
{
    int a=fnl();
    cout<<"a的值为"<<a;
    return 0;
}
内容2-习题6-18

 

 

 

#include <iostream>
#include "matrix.h"
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
    float a[9];  //以数组作为矩阵赋值用的内存块 
    for(int n1=0;n1<9;n1++)
    {
        cin>>a[n1];
    }
    Matrix mat_one(3,3);
    
    mat_one.setMatrix(a);
    Matrix mat_two(mat_one);
    
    mat_one.printMatrix();
    cout<<endl;
    
    mat_two.setElement(1,1,666);
    mat_two.setElement(3,3,233);
    mat_two.printMatrix();
    cout<<endl;
    
    float a9=mat_two.element(1,1);
    cout<<"矩阵2 第一行第一列的数字为"<<a9<<endl;


    return 0;
}
main
#ifndef MATRIX_H
#define MATRIX_H
class Matrix {
    public:
        Matrix(int n); // 构造函数,构造一个n*n的矩阵 
        Matrix(int n, int m); // 构造函数,构造一个n*m的矩阵 
        Matrix(const Matrix &X); // 复制构造函数,使用已有的矩阵X构造 
        ~Matrix(); //析构函数 
        void setMatrix(const float *pvalue); // 矩阵赋初值,用pvalue指向的内存块数据为矩阵赋值 
        void printMatrix() const; // 显示矩阵
        float &element(int i, int j); //返回矩阵第i行第j列元素的引用
        inline float element(int i, int j) const;// 返回矩阵第i行第j列元素的值 
        void setElement(int i, int j, int value); //设置矩阵第i行第j列元素值为value
        inline int getLines() const; //返回矩阵行数 
        inline int  getCols() const; //返回矩阵列数 
    private:
        int lines;    // 矩阵行数
        int cols;      // 矩阵列数 
        float *p;   // 指向存放矩阵数据的内存块的首地址 
};
#endif
matrix.h
matrix.cpp
#include<iostream>
#include"matrix.h"
using namespace std;
Matrix::Matrix(int n):lines(n),cols(n){
    int total=lines*cols;
    p=new float[total];
}

Matrix::Matrix(int n,int m):lines(n),cols(m){
    int total=lines*cols;
    p=new float[total];
}

Matrix::Matrix(const Matrix &X){
    lines=X.lines;
    cols=X.cols;
    int total=lines*cols;
    p=new float[total];
    for(int num=0;num<total;num++)  //赋值 
    {
        *(p+num)=*(X.p+num);
     } 
    
}

Matrix::~Matrix(){
    delete p;
}

void Matrix::setMatrix(const float *pvalue){
    int total=lines*cols;
    for(int num=0;num<total;num++)
    {
        *(p+num)=*(pvalue+num);
    }
}

void Matrix::printMatrix() const{
    float *p1=p; //p1用于输出值
    for(int l1=0;l1<lines;l1++)
    {
        for(int c1=0;c1<cols;c1++)
        {
            cout<<*p1;
            p1++;
            cout<<' ';
        }
        cout<<endl;
     }     
}


inline float Matrix::element(int i, int j) const
{
    float return_this;
    return_this=*(p+(i-1)*j+(j-1));
    return return_this;
}

void Matrix::setElement(int i, int j, int value){
    *(p+(i-1)*j+(j-1))=value;
}

inline int Matrix::getLines() const{
    return lines;
}

inline int Matrix::getCols() const{
    return cols;
}

因为我的矩阵本体是private中指针p指向的一片内存空间,_(:з」∠)_但我完全不会写 指针的引用 所以&element在这里没法使用;

 

内容4在前面_(:з」∠)_

 

posted on 2018-05-22 21:16  ikazuchi  阅读(158)  评论(1编辑  收藏  举报