C++学习,实验五
一,
#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("sport"); likes.push_back("sportsman"); cout << "-----I like these-----" << endl; // 调用子函数输出vector<string>数组对象likes的元素值 output1(likes); // 为vector<string>数组对象dislikes添加元素值 dislikes.push_back("paintings"); dislikes.push_back("anime"); 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) { int i; for(i=0;i<v.size();i++) cout<<v[i]<<endl; } // 函数实现 // 以迭代器方式输出vector<string>数组对象v的元素值 void output2(vector<string> &v) { //使用迭代器访问vector中的元素 vector<string>::iterator i; for(i= v.begin() ; i<v.end() ; ++i) cout<<*i<<endl; }
二,
/#include<iostream> using namespace std; int main(){ int *p; *p = 9; cout << "The value at p :"<< *p; /*定义一个指针只是定义了一片内存,这片内存是用来储存地址的,同时该地址需要指向内存单元, 此处没有对指针进行初始化,指针没有指定某个内存单元,会随机指向某处内存, 此时直接赋值就会越界,出错*/ return 0; } /*应改为 #include<iostream> using namespace std; int main(){ int a; int *p = &a; 也可以写成 int a=9; int*p=&a; *p = 9; cout << "The value at p :"<< *p; return 0; } */
#include<iostream> using namespace std; int fn1() { int *p=new int (5); return *p; delete p; /*未释放动态内存*/ } int main(){ int a=fn1(); cout<<"the value of a is:"<<a; 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{return lines;}//返回矩阵行数 inline int getCols() const{return cols;}//返回矩阵列数 private: int lines; // 矩阵行数 int cols; // 矩阵列数 float *p; // 指向存放矩阵数据的内存块的首地址 }; #endif
实验三还在修改,