マガジンのカバー画像

CRE-COエンジニアの技術OUTPUT

46
弊社では、インプットも大事だけけどアウトプットも大事!といった方針のもと、所属のエンジニアさん達にご自身が学んだ技術を記事にしてもらう活動をしております。様々な技術を持ったエンジ… もっと読む
運営しているクリエイター

記事一覧

C++開発を強化する: プログラマー必見のVSCode拡張機能トップ10

1. C/C++ (Microsoft製) VSCodeでのC++開発における基本拡張機能で、IntelliSenseによる賢いコード補完、高度なデバッグ機能、シンボルとヘッダの参照が可能です。VSCode環境とシームレスに統合され、C++開発作業における強固な基盤を提供します。 2. Code Runner 多言語に対応し、C++プログラマーがコードスニペットやファイルを簡単に実行できる汎用性とユーザーフレンドリーな拡張機能です。特にC++でのアルゴリズムのテストや小さな

C++におけるメモリ管理 (パート1)

メモリ管理はC++プログラミングの重要な側面です。PythonやJavaなどの自動メモリ管理を持つ言語とは異なり、C++はメモリの割り当てと解放の責任を開発者の手に委ねています。これにより、プログラムのメモリに対する細かい制御が可能になりますが、メモリリークやバッファーオーバーフローなどのメモリ関連のバグのリスクも導入されます。 目次 (1) メモリ管理の紹介 (1.i) メモリ管理とは何ですか? (1.ii) スタック (フレーム)とヒープの

C++とマルチスレッディング

マルチスレッディング マルチスレッディングは、特にC++の文脈でコンピュータプログラミングの世界での基本的な概念です。その核心には、単一のプロセス内で複数のスレッドが同時に実行されるという要素が含まれます。スレッドは最小の実行単位であり、プログラムが複数のタスクを同時に実行できるようにします。プログラムを単一の、一枚岩の実体として実行するのではなく、マルチスレッディングは、より小さな、より管理しやすいスレッドに分割して独立して実行できるようにします。この並行実行は、アプリケー

C++ でファイル操作を楽しもう! (Let's Have Fun with Files in C++!) ステップ1😉

C++を使用して、フォルダやファイルの作成から削除、名称変更、コピーなど、あらゆる操作を処理する多目的プログラムを作成して見ましょう。各ステップでは、なぜ特定の方法でコードを書くのか、その技術的な根拠を説明しながら、自分の思考プロセスをご案内したいと思っています。 後ほど、このプロジェクトのためにグラフィカルユーザーインターフェースとしてFLTKライブラリを統合する予定です。この最初のステップでは、プロジェクトの基本的な基盤を築きます。言葉にあるように、「千里の道も一歩から

C++ でファイル操作を楽しもう! (Let's Have Fun with Files in C++!) ステップ2😉

ステップ2へようこそ!  ステップ1は以下のリンクをご参照ください。 ステップ2で以下の機能を追加しましょう。 (1)フォルダーの作成 (2)フォルダー名前の変更 (3)フォルダーの削除 (4)フォルダーをコピー 一つの機能に対して一つの関数で作成します。ステップ1で作成したプログラムにステップ2で作成する関数を追加しましょう。 (※🧐自分が作成しているプログラムについて全ての状況を予想できるのはなかなか難しいじゃないですか。何か予想してなっかた状況があった場合、自分

C++におけるメモリ管理 (パート5)

この記事では、C++における(9) 並行性とメモリと(10) メモリ管理のベストプラクティスについて説明したいと思います。C++におけるメモリ管理の最後の記事でございます。これは C++におけるメモリ管理 (パート4)の続きです。パート4に興味があってお読みになりたい方は、以下のリンクをご参照ください。 (9.i) スレッドセーフティとデータ競合 スレッドセーフ性: スレッドセーフ性は、複数のスレッドが同時に実行される場合でも、プログラムが正しく動作することを保証するプロ

C++におけるメモリ管理 (パート4)

この記事では、C++における(7) メモリセーフティと(8) メモリ最適化テクニックについて説明したいと思います。これは C++におけるメモリ管理 (パート3)の続きです。パート3に興味があってお読みになりたい方は、以下のリンクをご参照ください。 (7.i) バッファーオーバーフローとスタックスマッシング バッファオーバーフローとは? バッファオーバーフローは、データが割り当てられたメモリバッファ(配列など)の終わりを超えて書き込まれる状況のことを指します。バッファが保

C++におけるメモリ管理 (パート2)

この記事では、C++における(3) スマートポインタと(4) 配列のメモリ管理について説明したいと思います。これは C++におけるメモリ管理 (パート1)の続きです。パート1に興味があってお読みになりたい方は、以下のリンクをご参照ください。 (3) スマートポインタ スマートポインタは、C++の機能の1つで、メモリを自動的に管理し、メモリリークのリスクを減少させ、動的に割り当てられたオブジェクトを操作しやすくするのに役立ちます。C++は3つの主要なタイプのスマートポインタを

C++におけるメモリ管理 (パート3)

この記事では、C++における(5) メモリ所有権とリソース管理と(6) メモリリークについて説明したいと思います。これは C++におけるメモリ管理 (パート2)の続きです。パート2に興味があってお読みになりたい方は、以下のリンクをご参照ください。 (5) メモリ所有権とリソース管理 (5.i) RAII(Resource Acquisition Is Initialization)イディオム RAIIイディオムは、リソース(メモリ、ファイルハンドル、その他のリソースなど

暗号化と復号のテクニックを解明しようパート5(Deciphering the Technique of Encryption and Decryption Part V)

暗号化、復号化についての最後の記事になりますが本日はAES(Advanced Encryption Standard、高度暗号化標準)を紹介致します。 AESは、対称暗号化アルゴリズムであり、2001年にアメリカ合衆国国立標準技術研究所(NIST)によって標準として確立されました。 AESの仕組み: 鍵拡張: 元の鍵が、各暗号化ラウンドで使用される一連のラウンド鍵に拡張されます。 初期ラウンド: AddRoundKey: ブロックの各バイトをラウンド鍵の対応するバ

高水準言語とのC++の橋渡し - PythonとJava

はじめに システムレベルのプログラミングやパフォーマンス重視のアプリケーションで優れたC++と、Web開発、データ分析、アプリケーション開発などで優れたPythonやJavaとの統合は、各言語のユニークな特徴と能力を活用することを可能にします。この記事では、PythonやJavaからC++を呼び出す方法と、統合に関連する利点と課題について探ります。 PythonからC++を呼び出す 1. PythonのためのC++エクステンション 簡潔さと可読性で知られるPython

データ構造解説:プログラミングの基礎要素(Data Structures Unveiled: Building Blocks of Programming)_Part I

コンピューターサイエンスやソフトウェア開発の分野において、データ構造はデータを効率的に保存・整理するための基礎的な要素です。効率的なアルゴリズムの設計には不可欠であり、ソフトウェアアプリケーションのパフォーマンスに大きく影響を与えます。この記事のシリーズでは、データ構造に関する知識を、クイズを通して確認し、足りない知識を学んで行こうという目的でとどけました。 それではクイズを回答してみましょう。 1. 次のうち、プリミティブデータ構造はどれですか? A. 連結リスト B

C++, Java, Pythonプログラムの実行プロセスの比較

C++、Java、Pythonプログラムの実行プロセスを理解することは、ソフトウェア開発におけるパフォーマンスとリソース管理を最適化するために重要です。各言語はプログラムを実行する独自のアプローチを持っており、デバッグ、エラー処理、他のシステムとの統合に影響を与えます。プロセスに関する知識は、効率と互換性を確保するために特定のタスクに最適な言語を選択するのに役立ちますので理解しましょう。 1. C++プログラムの実行プロセス ソースファイル: C++のソースコードは.cp

C++ でファイル操作を楽しもう! (Let's Have Fun with Files in C++!) ステップ3😉

ステップ3では以下の機能を追加して見ましょう。 (1)テキストファイル作成 (2)テキストファイルにテキスト追加 (3)ファイルコピー (4)ファイル名前変更 ステップ2まで作成してきたプログラムにステップ3で作成する関数を追加しましょう。ステップ2は以下のリンクをご参照ください。 (1)テキストファイル作成 void CreateTextFile(string FileName){ try { // ファイルが既に存在するか確認