码迷,mamicode.com
首页 > 其他好文 > 详细

实验5

时间:2018-05-23 23:37:05      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:color   --   man   交换   isl   val   添加元素   stream   turn   

EX3

#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("la la land");
    likes.push_back("princess principle");
    
    cout << "-----I like these-----" << endl;
    // 调用子函数输出vector<string>数组对象likes的元素值 
    // 补足代码
    // 。。。 
    output1(likes);

    // 为vector<string>数组对象dislikes添加元素值 
    // 补足代码 
    // 。。。 
    dislikes.push_back("hop");
    dislikes.push_back("football");    
    cout << "-----I dislike these-----" << endl;
    // 调用子函数输出vector<string>数组对象dislikes的元素值 
    // 补足代码
    // 。。。 
    output1(dislikes);

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


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

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

技术分享图片

6-17

#include<iostream>
using namespace std;
int main(){
    int *p;     //int a,*p=a;P作为指针,在指向目标前本身没有被分配内存空间。 
    *p=9;       //*p=9; 
    cout<<"The value at p:"<<*p;
    return 0;
} 

6-18

#include<iostream>
using namespace std;
int fnl(){
    int *p=new int (5);
    return *p;
}
int main(){
    int a=fnl();
    cout<<"the value of a is:"<<a;
    return 0;
}
//能力有限,看不出问题,好像本身就能运行。

matrix.h

#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; // 显示矩阵
        inline float &element(int i, int j) //返回矩阵第i行第j列元素的引用
        {
            float &r=p[(i-1)*cols+j-1];
            return r;
        }
        inline float element(int i, int j) const// 返回矩阵第i行第j列元素的值
        {
            float r=p[(i-1)*cols+j-1];
            return r;
        }
        void setElement(int i, int j, int value); //设置矩阵第i行第j列元素值为value
        inline int getLines() const //返回矩阵行数
        {
            return lines;
        }
        inline int getCols() const  //返回矩阵列数
        {
            return cols;
        }
    private:
        int lines;    // 矩阵行数
        int cols;    // 矩阵列数
        float *p;   // 指向存放矩阵数据的内存块的首地址
};
#endif

matrix.cpp

#include<iostream>
#include "matrix.h"
using namespace std;
Matrix::Matrix(int n):lines(n),cols(n)
{
    p=new float[lines*cols];
}
Matrix::Matrix(int n, int m):lines(n),cols(m)
{
    p=new float[lines*cols];
}
Matrix::Matrix(const Matrix &X):lines(X.lines),cols(X.cols),p(X.p){}
Matrix::~Matrix()
{
    delete p;
}
void Matrix::setMatrix(const float *pvalue)
{
    for(int i=0;i<lines;i++)
    {
        for(int j=0;j<cols;j++)
            p[i*cols+j]=pvalue[i*cols+j];
    }
}
void Matrix::printMatrix()const
{
    for(int i=0;i<lines;i++)
    {
        for(int j=0;j<cols;j++)
            cout<<p[i*cols+j]<<" ";
        cout<<endl;
    }
}
void Matrix::setElement(int i,int j,int value)
{
    p[(i-1)*cols+j-1]=value*1.0;
}

main.cpp

#include <iostream>
#include "matrix.h"
using namespace std;
int main()
{
    Matrix A(3);
    Matrix C(2,3);
    float const touch[9]= {1,2,3,
                           4,5,6,
                           2,2,1,};
    A.setMatrix(touch);
    A.printMatrix();
    Matrix B(A);
    cout<<A.element(2,3)<<endl;
    A.element(2,3)=4;
    cout<<A.element(2,3)<<endl;
    A.setElement(2,3,2);
    cout<<A.element(2,3)<<endl;
    cout<<A.getLines()<<endl;
    cout<<C.getCols()<<endl;
    return 0;
}

技术分享图片

实验5

标签:color   --   man   交换   isl   val   添加元素   stream   turn   

原文地址:https://www.cnblogs.com/haruna/p/9080048.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!