实验 5 类和对象-3

vector

#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("favorite book, music, film, paintings,anime,sport,sportsman,etc");
    
    cout << "-----I like these-----" << endl;
    // 调用子函数输出vector<string>数组对象likes的元素值 
    // 补足代码
    // 。。。 
    output2(likes);
    // 为vector<string>数组对象dislikes添加元素值 
    // 补足代码 
    // 。。。 
    dislikes.push_back("没有");
    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的元素值 
    // 补足代码
    // 。。。 
    output1(likes);
    cout << "-----I dislikes these-----" << endl;
    // 调用子函数输出vector<string>数组对象dislikes的元素值 
    // 补足代码
    // 。。。 
    output2(dislikes);
                        
    return 0;
}


 6-17

1 #include<iostream>
2 using namespace std;
3 int main(){
4     int *p;
5     *p=9;//    改正:int m=5;    p=&m;
6     cout <<"The value at p:"<<*p;
7     return 0;
8 } 

6-18

#include<iostream>
using namespace std;
int fn1()     //int *fn1() 
{
     int *p=new int (5);
    return *p;    //return p;
}
int main(){
    int a=fn1();  //int *a=fn1();
    cout<<"the value of a is:"<<a;// *a
//    delete a;
    return 0;
} 

matrix

 1 //main
 2 #include <iostream>
 3 using namespace std;
 4 #include"matrix.h"
 5 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 6 
 7 int main(int argc, char** argv) {
 8     Matrix a(3);
 9     float s[3][3]={1,2,3,4,5,6,7,8,9};
10     const float *p;
11     p=s[0];
12     a.setMatrix(p);
13     a.printMatrix();
14     cout<<a.element(0,0)<<endl;
15     cout<<a.getCols()<<endl;
16     cout<<a.getLines()<<endl;
17     a.setElement(0,0,0);
18     a.printMatrix();
19     return 0;
20 }
 1 #ifndef MATRIX_H
 2 #define MATRIX_H
 3 class Matrix {
 4     public:
 5         Matrix(int n); // 构造函数,构造一个n*n的矩阵 
 6         Matrix(int n, int m); // 构造函数,构造一个n*m的矩阵 
 7         Matrix(const Matrix &X); // 复制构造函数,使用已有的矩阵X构造 
 8         ~Matrix(); //析构函数 
 9         void setMatrix(const float *pvalue); // 矩阵赋初值,用pvalue指向的内存块数据为矩阵赋值 
10         void printMatrix() const; // 显示矩阵
11         inline float &element(int i, int j){
12             return *(p+i*cols+j);
13         } //返回矩阵第i行第j列元素的引用
14         inline float element(int i, int j) const;// 返回矩阵第i行第j列元素的值 
15         void setElement(int i, int j, int value); //设置矩阵第i行第j列元素值为value
16         inline int getLines() const{
17             return lines;
18         } //返回矩阵行数 
19         inline int  getCols() const{
20             return cols;
21         }
22          //返回矩阵列数 
23     private:
24         int lines;    // 矩阵行数
25         int cols;      // 矩阵列数 
26         float *p;   // 指向存放矩阵数据的内存块的首地址 
27 };
28  
29 #endif
 1 #include"matrix.h"
 2 #include<iostream>
 3 using namespace std;
 4 Matrix::Matrix(int n):lines(n),cols(n){
 5 }
 6 Matrix::Matrix(int n,int m):lines(n),cols(m){
 7 }
 8 Matrix::Matrix(const Matrix &X){
 9     lines=X.lines;
10     cols=X.cols;
11     p=X.p;
12 }
13 void Matrix::setMatrix(const float *pvalue){
14     p=(float*)pvalue;
15 }
16 void Matrix::printMatrix() const{
17     int i,j;
18     for(i=0;i<lines;i++){
19         for(j=0;j<cols;j++)
20             cout<<*(p+i*cols+j)<<" ";
21         cout<<endl;
22     }
23 }
24 
25 Matrix::~Matrix(){
26 }
27 
28 void Matrix::setElement(int i, int j, int value){
29     *(p+i*cols+j)=value;
30 }

  

猜你喜欢

转载自www.cnblogs.com/yywzs/p/9077301.html
今日推荐