problemscpp
A collection of my answers to algorithm problems in c++.
函数
templates.cpp 文件参考
#include "templates.h"
#include <cstring>
#include <numeric>
#include <sstream>
#include <unordered_set>

浏览源代码.

函数

ostream & operator<< (ostream &os, const BigInt &bi)
 
ostream & operator<< (ostream &os, const Fraction &frac)
 
istream & operator>> (istream &is, const BigInt &)
 

函数说明

◆ operator<<() [1/2]

ostream & operator<< ( ostream &  os,
const BigInt bi 
)

在文件 templates.cpp349 行定义.

349 {
350 if(!bi.positive) {
351 os << '-';
352 }
353 for(auto it = bi.vec.rbegin(); it != bi.vec.rend(); ++it) {
354 os << *it;
355 }
356 return os;
357}
bool positive
Definition: templates.h:25
vector< unsigned short > vec
Definition: templates.h:26

◆ operator<<() [2/2]

ostream & operator<< ( ostream &  os,
const Fraction frac 
)

在文件 templates.cpp452 行定义.

452 {
453 if(frac.denominator == 0) {
454 os << "Inf";
455 return os;
456 }
457 if(frac.numerator == 0) {
458 os << 0;
459 return os;
460 }
461 if(!frac.positive) {
462 os << "(-";
463 }
464 if(frac.numerator % frac.denominator == 0) {
465 os << frac.numerator / frac.denominator;
466 } else {
467 if(frac.numerator / frac.denominator != 0) {
468 os << frac.numerator / frac.denominator << ' ';
469 }
470 os << frac.numerator % frac.denominator << '/' << frac.denominator;
471 }
472 if(!frac.positive) {
473 os << ")";
474 }
475 return os;
476}
unsigned long long denominator
分母
Definition: templates.h:75
bool positive
正负
Definition: templates.h:73
unsigned long long numerator
分子
Definition: templates.h:74

◆ operator>>()

istream & operator>> ( istream &  is,
const BigInt  
)

在文件 templates.cpp359 行定义.

359{ return is; }