#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("Crocus_sativus"); likes.push_back("Manjusaka"); likes.push_back("Oncidium_hybridum"); likes.push_back("Oenothera_biennis"); cout << "-----I like these-----" << endl; // 调用子函数输出vector<string>数组对象likes的元素值 // 补足代码 // 。。。 output1(likes); // 为vector<string>数组对象dislikes添加元素值 // 补足代码 // 。。。 dislikes.push_back("肥宅"); dislikes.push_back("キモヲタ"); dislikes.push_back("Fat_otaku"); cout << "-----I dislike these-----" << endl; // 调用子函数输出vector<string>数组对象dislikes的元素值 // 补足代码 // 。。。 output2(dislikes); // 交换vector<string>对象likes和dislikes的元素值 // 补足代码 // 。。。 likes.swap(dislikes); cout << "-----I 不可能 likes these-----" << endl; // 调用子函数输出vector<string>数组对象likes的元素值 // 补足代码 // 。。。 output1(likes); cout << "-----I do likes these-----" << endl; // 调用子函数输出vector<string>数组对象dislikes的元素值 // 补足代码 // 。。。 output2(dislikes); return 0; } // 函数实现 // 以下标方式输出vector<string>数组对象v的元素值 void output1(vector<string> &v) { // 补足程序 // 。。。 int n=0; for(;n<v.size();n++) { cout<<v[n]<<' '; } cout<<endl<<endl<<endl<<endl; } // 函数实现 // 以迭代器方式输出vector<string>数组对象v的元素值 void output2(vector<string> &v) { // 补足程序 // 。。。 vector<string>::iterator read_=v.begin(); for(;read_<v.end();++read_) { cout<<*read_<<' '; } cout<<endl<<endl<<endl<<endl; }
#include<iostream> using namespace std; int main() { int *p; //定义的指针p没有指向任何地址 //增加: //无法向未知的地址赋值 int a; p=&a; *p=9; cout<<"p的值是"<<*p; return 0; }
#include<iostream> using namespace std; int fnl() { int *p=new int(5); return *p; //没有释放新申请的内存空间 //加上: delete p; } int main() { int a=fnl(); cout<<"a的值为"<<a; return 0; }
#include <iostream> #include "matrix.h" using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char** argv) { float a[9]; //以数组作为矩阵赋值用的内存块 for(int n1=0;n1<9;n1++) { cin>>a[n1]; } Matrix mat_one(3,3); mat_one.setMatrix(a); Matrix mat_two(mat_one); mat_one.printMatrix(); cout<<endl; mat_two.setElement(1,1,666); mat_two.setElement(3,3,233); mat_two.printMatrix(); cout<<endl; float a9=mat_two.element(1,1); cout<<"矩阵2 第一行第一列的数字为"<<a9<<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; // 显示矩阵 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
matrix.cpp
#include<iostream> #include"matrix.h" using namespace std; Matrix::Matrix(int n):lines(n),cols(n){ int total=lines*cols; p=new float[total]; } Matrix::Matrix(int n,int m):lines(n),cols(m){ int total=lines*cols; p=new float[total]; } Matrix::Matrix(const Matrix &X){ lines=X.lines; cols=X.cols; int total=lines*cols; p=new float[total]; for(int num=0;num<total;num++) //赋值 { *(p+num)=*(X.p+num); } } Matrix::~Matrix(){ delete p; } void Matrix::setMatrix(const float *pvalue){ int total=lines*cols; for(int num=0;num<total;num++) { *(p+num)=*(pvalue+num); } } void Matrix::printMatrix() const{ float *p1=p; //p1用于输出值 for(int l1=0;l1<lines;l1++) { for(int c1=0;c1<cols;c1++) { cout<<*p1; p1++; cout<<' '; } cout<<endl; } } inline float Matrix::element(int i, int j) const { float return_this; return_this=*(p+(i-1)*j+(j-1)); return return_this; } void Matrix::setElement(int i, int j, int value){ *(p+(i-1)*j+(j-1))=value; } inline int Matrix::getLines() const{ return lines; } inline int Matrix::getCols() const{ return cols; }
因为我的矩阵本体是private中指针p指向的一片内存空间,_(:з」∠)_但我完全不会写 指针的引用 所以&element在这里没法使用;
内容4在前面_(:з」∠)_