-4
C++の構造体と配列の間に類似点はありますか?C++:構造と配列の類似点
私は、ユーザー定義のデータ型とそれ以外のものが異なるため、この種の質問は連続したメモリ位置記憶域を持つデータ型であると考えていました。
C++の構造体と配列の間に類似点はありますか?C++:構造と配列の類似点
私は、ユーザー定義のデータ型とそれ以外のものが異なるため、この種の質問は連続したメモリ位置記憶域を持つデータ型であると考えていました。
構造体と配列に共通するものがいくつかありますが、一般的には概念的に分離していると考えられます。どちらかを使用できる状況の1つは、すべて同じタイプの既知の数の変数を保存する場合です。
保存しているデータが異なるコンテキストで同じ意味を持つシリーズである場合は配列を使用することをお勧めします。各値が異なる意味を持つ場合は構造体を使用することをお勧めします。
など。
1週間の一連の最高温度値を保存します。
std::array<int, 7> week_max_temperatures;
あなたが一日の最大値と最小温度と総雨量を保存する:各値の意味は、あなたが、配列を使用するように、すべては、最高温度である、と同じです。各値の型はint
、同じですが、意味が異なっているので、あなたが混乱最低温度、最高温度、および降雨を避けるために、構造体を使用します。ここでは
struct DailyWeatherData
{
int max_temperature_deg_c;
int min_temperature_deg_c;
int total_rainfall_mm;
};
は、彼らの類似点と相違点のリストです:
構造体:
operator=()
を使用してコピー可能です(コピーコンストラクタの削除やコピーが許可されていないメンバーが含まれている場合を除きます)。new
を使用して割り当てられているのかによって異なります。後者の場合は、メモリ管理を担当します。Cスタイルの配列:
std::copy
またはmemcpy
ではなく、operator=()
です。new[]
を使用して割り当てられるかによって異なります。後者の場合は、メモリ管理を担当します。どちらの場合でも、配列変数は実際のデータへのポインタのように機能します。operator=()
を使用してコピーできます。new
を使用して割り当てられないため、メモリ管理は問題になりません。operator=()
を使用してコピーできます。
問題がありますか? – AMS
あなたが探している答えの種類はあまり明確ではありません。実際には構造体と配列の間に類似点はありません。どのような類似点を望んでいたのですか?彼らはまったく別のものです –
「物」を含んでいますか? – Drop