- 追加された行はこの色です。
- 削除された行はこの色です。
- テスト は削除されています。
- テスト の差分を削除
**転置行列 [#f9620acd]
#geshi(cpp){{
// problem
// transposed matrix
// vector
#include <iostream>
#include <vector>
#include <string>
int main(){
std::vector< std::vector<double> > matrix;
std::vector<double> row;
char tmp;
std::string str("");
while(std::cin.get(tmp)){
switch(tmp){
case ' ':
if(str != "")
row.push_back(atof(str.c_str()));
str="";
break;
case '\n':
if(str != "")
row.push_back(atof(str.c_str()));
matrix.push_back(row);
row.clear();
str="";
break;
default:
str += tmp;
break;
}
}
if(str != "")
row.push_back(atof(str.c_str()));
if(row.size() != 0)
matrix.push_back(row);
for(unsigned int j=0; j < matrix[0].size(); j++){
for(unsigned int i=0; i < matrix.size(); i++){
std::cout << matrix[i][j] << ' ';
}
std::cout << std::endl;
}
return 0;
}
}}
**vector (begin, end)を使って [#p70e6917]
#geshi(cpp){{
// problem
// transposed matrix
// vector_scplit
#include <sstream>
#include <iostream>
#include <vector>
#include <string>
#include <iterator>
int main(){
std::vector< std::vector<double> > matrix;
std::string str;
while(getline(std::cin, str)){
std::istringstream iss(str);
std::vector<double> row( (std::istream_iterator<double>(iss)),
std::istream_iterator<double>() );
matrix.push_back(row);
}
for(unsigned int j=0; j < matrix[0].size(); j++){
for(unsigned int i=0; i < matrix.size(); i++){
std::cout << matrix[i][j] << ' ';
}
std::cout << std::endl;
}
return 0;
}
}}
aaaa