Swift版chminを実装したい。
解決したいこと
Swiftで競技プログラミングでよく用いられるテンプレートのchminとchmaxを
作りたいのですが、うまく行きません。どなたか教えて下さい。
// aよりもbが大きいならばaをbで更新する
// (更新されたならばtrueを返す)
template <typename T>
bool chmax(T &a, const T& b) {
  if (a < b) {
    a = b;  // aをbで更新
    return true;
  }
  return false;
}
// aよりもbが小さいならばaをbで更新する
// (更新されたならばtrueを返す)
template <typename T>
bool chmin(T &a, const T& b) {
  if (a > b) {
    a = b;  // aをbで更新
    return true;
  }
  return false;
}
自分で試したこと
Swiftでもポインタが使えるかなと思ったら、うまく行きませんでした。
import Foundation
func chmin<T:Comparable>(_ a:UnsafeMutablePointer<T>,_ b:UnsafeMutablePointer<T>){
    if &a > &b {
        &a = &b
    }
}
0 likes
