实践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("favorite book");
    likes.push_back("music");        
    likes.push_back("film");
    likes.push_back("paintings");
    
    cout << "-----I like these-----" << endl;
    // 调用子函数输出vector<string>数组对象likes的元素值 
     
    output1(likes);

    // 为vector<string>数组对象dislikes添加元素值 
     
    dislikes.push_back("anime");
    dislikes.push_back("sport");
    dislikes.push_back("sportsman");
    dislikes.push_back("etc");
    
    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]<<endl;
    
}

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

    
}

6-17

#include<iostream>
using namespace std;
int main()
{
    int a;
    int *p=&a; 
    *p=9 ;
    cout<<"The value at p:"<<*p;
    return 0;
 } 

6-18

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

}

 Matrix

#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& a = p[(i - 1)*cols + j - 1];
    return a;
}
inline float element(int i, int j) const// 返回矩阵第i行第j列元素的值 
{
    return p[(i - 1)*cols + j - 1];
}
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
#include "matrix.h"
#include<iostream>
#include<vector>
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 = new float[X.lines*X.cols];
for (int i = 0; i < (X.lines*X.cols);i++)
{
    p[i] = X.p[i];
}
}
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 {
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;
}
#include<iostream>
#include"matrix.h"
using namespace std;
int main(){
Matrix squareMartrix (3);
Matrix Martrix1(2,3);
Matrix Martrix2(Martrix1);
float a[9] = { 1,2,3,4,5,6,7,8,9 }, b[6] = { 1,1,1,1,1,1 };
    squareMartrix.setMatrix(a);
    Martrix1.setMatrix(b);
    Martrix2.setMatrix(b);
cout << "方矩阵为:" << endl;
    squareMartrix.printMatrix();
cout << "矩阵1为:" << endl;
    Martrix1.printMatrix();
cout << "1复制构造函数矩阵2为:" << endl;
    Martrix2.printMatrix();
const float *c = &squareMartrix.element(2,3);
    cout << "方矩阵第2行第3列元素的引用:" << c<<endl;
    cout << "方矩阵第2行第3列元素的值:" << squareMartrix.element(2, 3) << endl;
    
    //设置方矩阵第2行第1列元素值为1
    squareMartrix.setElement(2, 1, 1);

 cout << "方矩阵的第2行第1列设为1:" << endl;

    squareMartrix.printMatrix();


   cout << "方矩阵的行列俱为:" << squareMartrix.getLines()  << endl;
    cout << "矩阵1的行列分别为:" << Martrix1.getLines()  << " " << Martrix1.getCols() << endl;

return 0;    
    
    
    
    
    
    
} 

转载于:https://www.cnblogs.com/llyl/p/9079974.html

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值