⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vector.cpp

📁 斯坦福Energy211/CME211课《c++编程——地球科学科学家和工程师》的课件
💻 CPP
字号:
// ENERGY211/CME211// // vector.cpp - Implementation file for Project 1//#include <iostream>#include "vector.h"	// Must include corresponding header file#include <cmath>using namespace std;////////////////////////////////////////////////////////////// Implementation of ColVector class////////////////////////////////////////////////////////////ColVector::ColVector( int rows, double *data ) : Matrix( rows, 1, data ){}ColVector::ColVector( const ColVector& v ) : Matrix( v ){}ColVector::ColVector( const Matrix& A ){	m_rows = A.get_rows();	Reshape( A, A.get_rows() * A.get_cols(), 1 );}ColVector::~ColVector(){}ColVector& ColVector::operator=( const Matrix& A ){	if ( A.get_cols() > 1 )		ReportError( ERROR_SIZE_MISMATCH );	std::cout << "ColVector::operator=" << endl;	Set(A);	m_dummy = 1;	return *this;}//ColVector& ColVector::operator=( const ColVector& A )//{//	std::cout << "ColVector::operator=" << endl;//	Set(A);//	return *this;//}double& ColVector::operator[]( int i ) const{	if ( i < 0 || i > m_rows )		ReportError(ERROR_INVALID_INDEX);	return m_rowdata[i][0];}ColVector ColVector::operator[]( Range r ) const{	if ( r.get_row2() == -1 )		r.set_row2(m_rows - 1);		if ( r.get_row1() < 0 || r.get_row1() >= m_rows )		ReportError( ERROR_INVALID_INDEX );	if ( r.get_row2() < 0 || r.get_row2() >= m_rows )		ReportError( ERROR_INVALID_INDEX );		if ( r.get_row1() > r.get_row2() )		ReportError( ERROR_INVALID_RANGE );		ColVector v;	v.m_rows = r.get_row2() - r.get_row1() + 1;	v.m_cols = 1;	v.m_data = m_data;	v.m_rowdata = new double *[v.m_rows];	for ( int i = 0; i < v.m_rows; i++ )		v.m_rowdata[i] = (double *) ( m_data + ( i + r.get_row1() ) * m_cols );	v.m_issubmatrix = true;	return v;}double ColVector::norm( const ColVector& v, int p ) {	double sum = 0.0;	for ( int i = 0; i < v.length(); i++ )		sum += pow( abs( v[i] ), p );	return pow( sum, 1.0 / p );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -