首先,阅读其他答案,然后再阅读一本好的 C++ 书籍中的指针章节。现在,除非您需要极高的速度,否则请使用vector
. 使用 C++11(较新的 C++ 标准),它非常好读,所以我先发布:vector
double
#include <iostream>
#include <vector>
void printArray( std::vector< std::vector<double> > & v ) {
for ( const auto & row : v ){
for ( const auto & value : row ){
std::cout << value << " ";
}
std::cout << std::endl;
}
}
int main () {
int n;
std::cout<<"Please enter the length of your matrix : "<<std::endl;
std::cin>>n;
std::vector<std::vector<double>> y(n,std::vector<double>(n,0));
for ( auto & row : y ){
std::cout<<"Insert the elements of row :";
for ( auto & value : row ){
std::cin >> value;
}
}
printArray(y);
}
对于较旧的 C++,它是这样的:
void printArray( std::vector< std::vector<double> > & v ) {
for ( std::vector<std::vector<double> >::const_iterator it = v.begin(); it != v.end();it++){
for ( std::vector<double>::const_iterator it2 = it->begin(); it2!= it->end();it2++) {
std::cout << (*it2) << " ";
}
std::cout << std::endl;
}
}
int main () {
int n;
std::cout<<"Please enter the length of your matrix : "<<std::endl;
std::cin>>n;
std::vector<std::vector<double> > y(n,std::vector<double>(n,0));
for ( std::vector<std::vector<double> >::iterator it = y.begin(); it!= y.end();it++){
std::cout<<"Insert the elements of row :";
for ( std::vector<double>::iterator it2 = it->begin(); it2!= it->end();it2++) {
std::cin >> (*it2);
}
}
printArray(y);
}
请注意,这y(n,std::vector<double>(n,0))
意味着制作n
向量,每个向量都有n
零。您还可以使用 usey[1][2]
来获取和设置值。如果您使用 y.at(1).at(2) 代替,您会得到适当的检查,以便在读取或写入越界时获得异常。