实验5

Posted haruna

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验5相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)

VSCode自定义代码片段5——HTML元素结构

VSCode自定义代码片段5——HTML元素结构

VSCode自定义代码片段5——HTML元素结构

使用 React 实验性中继片段:缺少属性 '"$fragmentRefs"'

[NTUSTISC pwn LAB 5]rop入门实验