5/26 til : dockerfile , apc , c++ generics , cのadt


-- Docker --
プロジェクトのためのDockerfile

FROM golang:1.15 AS builder

RUN apt update && apt upgrade -y && \

apt install -y git \

WORKDIR /app

# Get install script, run, and make binary

RUN curl -fLo install.sh https://raw.githubusercontent.com/cosmtrek/air/master/install.sh \

&& chmod +x install.sh && sh install.sh && cp ./bin/air /bin/air

  • 実行時にapt get installを実行します.https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
  • このコマンドワークは、Dockerコンテナの加重作業ディレクトリを定義するためのものである.指定された作業ディレクトリで実行されます.
  • アプト対apt
  • APTはAPT GETのサブセットです、そして、APTは通常好ましいです
  • APTはパッケージ管理のためのすべての必要なコマンドを提供します
  • APTアップデート対APTアップグレード
  • APT UPDATEは利用可能なパッケージとそのバージョンのリストを更新しますが、パッケージをインストールしたりアップグレードしたりしません.
  • apt upgradeは実際にパッケージの新しいバージョンをインストールします.リスト更新後
  • -Yフラグは「すべてにyesと答える」という意味です
  • https://askubuntu.com/questions/94102/what-is-the-difference-between-apt-get-update-and-upgrade
  • -- C++の基本--
    C++のジェネリック
    
    #include <iostream>
    
    using namespace std;
    
    template <class T>
    
    T GetMax (T a, T b) {
    
    T result;
    
    result = (a>b)? a : b;
    
    return (result);
    
    }
    
    int main () {
    
    int i=5, j=6, k;
    
    long l=10, m=5, n;
    
    k=GetMax<int>(i,j);
    
    n=GetMax<long>(l,m);
    
    cout << k << endl;
    
    cout << n << endl;
    
    return 0;
    
    }
    
    
  • C++のテンプレートhttps://www.cplusplus.com/doc/oldtutorial/templates/
  • 物理的なデータ構造を使用して実装された論理的データ構造
  • スタック( linear , lifo )
  • キュー( linear , fifo )
  • 木(非線形)
  • グラフ(非線形)
  • ハッシュテーブル
  • 抽象データ型
  • ADTは、値の集合と一連の操作によって動作が定義されるオブジェクトの型(またはクラス)です
  • ADTの定義はどのような操作を実行するかについて説明しますが、これらの操作がどのように実装されるかではなく、抽象化されます
  • リスト、スタック、およびキューADTS :https://www.geeksforgeeks.org/abstract-data-types/
  • 離散数学
    数学の定理の例
    証拠
  • Mが偶数で、Nが奇数なら( 1 .仮定の状態)
  • ∃k 1∈ Zと∃K 2∈ m=2 k 1とn=2 k 2+1(2)仮定を定義する
  • 次に、m+n=(2 k 1)+(2 k 2+1)=2(k 1+k 2)+1となる.k 3 = k 1 + k 2とすると、整数であることに注意してください.( 3 .操作)
  • Hence ∃K 3∈ m + n = 2 k 3 + 1 ( 4 .結論の定義に到達する)
  • m + nは奇数( 5 .結論)
  • 分割可能性
  • NとD整数のために≠ 0 , D↔ if ∃ケイ∈ n = dk
  • Dと言うと、NはDで割り切れることを意味します
  • ∀X∈ D , P ( x )→ 我々が特定のX値で定量化するQ(x)で、それは2つの声明の含意を示すために一つの矢を使います
    p ( x )⇒ q(x)は2つの述語の間の暗示である上記と同じこと
    その他の証明方法
  • 反例を疑う
  • ケースへの分割による証明
  • 矛盾による証明
  • 逆説的証明