实验五

实验五

ex3.cpp

源码:

#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("favourite book");
    likes.push_back("music");
    likes.push_back("film");
    likes.push_back("paintings");
    likes.push_back("anime");
    likes.push_back("sport");
    likes.push_back("sportman");
    likes.push_back("etc");



    cout << "-----I like these-----" << endl;
    // 调用子函数输出vector<string>数组对象likes的元素值 
    output1(likes);


    // 为vector<string>数组对象dislikes添加元素值 
    dislikes.push_back("games");
    dislikes.push_back("wake up");  

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


    // 交换vector<string>对象likes和dislikes的元素值 
    likes.swap(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>::const_iterator i;
    for( i=v.begin();i!=v.end();i++){
        cout<<*i<<" ";
    }
    cout<<endl;
}

运行结果:这里写图片描述


动态矩阵(Matrix)

源码:

#include"matrix.h"
#include<iostream>
using namespace std;
int main() {
    Matrix A(3); Matrix B(3, 4);Matrix C(A); 
    const float a[9] = { 1,2,3,4,5,6, 7,8,9 };
    const float b[12] = { 1,2,3,4,5,6,7,8,9,10,11,12, };
    A.setMatrix(a); 
    B.setMatrix(b); 
    A.printMatrix(); 
    B.printMatrix(); 
    C.printMatrix();
    A.setElement(1, 1, 0);B.setElement(1, 1, 0);
    A.printMatrix(); B.printMatrix(); C.printMatrix();
    cout << A.getLines() << " " << B.getLines() << " " << C.getLines() << endl;
    cout << A.getCols() << " " << B.getCols() << " " << C.getCols() << endl;
    return 0;
}
#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列元素的引用
        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
#include"Matrix.h"
#include<iostream>
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) {  //复制构造函数的实现
    p=X.p; 
}
Matrix::~Matrix() {       //析构函数
    delete[]p;
}
void Matrix::setMatrix(const float *pvalue) {//给矩阵赋值
    for (int i = 0; i < lines*cols; i++) 
        p[i] = pvalue[i];
}
void Matrix::printMatrix() const {         //输出矩阵
    cout << "The Matrix is:" << endl;
    for (int i = 0; i < lines; i++) {
        for (int j = 0; j < cols; j++)
            cout << p[i*cols + j] << " ";
        cout << endl;
    }
}
inline float &Matrix::element(int i, int j) {
    return p[i*cols + j];
}
inline float Matrix::element(int i, int j) const {
    return p[i*cols + j];
}
void Matrix::setElement(int i, int j, int value) {
    p[i*cols + j] = value;
}

运行结果:


一直编译出现这个错误,我找了半天还是没能解决,望指点迷津!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值