質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MFC

MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

1001閲覧

64bit数値の配列を、既存のクラスや型で管理するとき、よい方法はありますか?

yamekodev

総合スコア17

MFC

MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/08/16 06:02

編集2021/08/16 06:36

やりたいこと
CUintArrayで管理していた32bitの数値が64bitになることになったので、
拡張したい
CUintArrayと同様、できれば宣言時に要素数を気にしたくない

調べたこと
CUint64Arrayというクラスはなかった
20分ほどググったがいい方法を見つけられていない

今考えている方法2つ
1 __int64型のただの配列に格納する
2 CStringArrayに文字列として格納し、使うときに数値に変換する

今考えている方法の問題点
1 CUintArrayを使っていた時は宣言時の要素数は不要だったが、ただの配列になると必要になる。今回、要素数が固定でないため、別の場所にある要素数を参照する設定をする手間が増える
2 数値を文字に変換して格納し、使うときにまた数値に戻すのが少し面倒・手間がかかる

初歩的な質問かもしれませんがよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2021/08/16 06:13

「配列を既存のクラスや型で管理する」というのは、具体的には何をするという事ですか? 配列を扱うときには要素数を考慮する必要があると思うのですが、「要素数を気にする必要があるのが面倒・手間がかかる」という問題を、どのような手段で解決しようと考えているのですか? こうした事の詳細を質問に追加すると、適切な回答が得られるのではないでしょうか。
dodox86

2021/08/16 06:27

MFCであれば、使っている時点で特有の話なので初歩的な質問とは言えないと思います。CUintArrayとだけ書いて何のことやら分かる人は今や少ないのでは?
yamekodev

2021/08/16 06:35

coco_bauerさん 説明不足でした。申し訳ありません。 もともとCUintArrayを使っていた時は宣言時の要素数は不要でしたが、ただの配列になると必要になります。 要素数が固定でないため、別の場所にある要素数を参照する設定をする手間が増えるということです。 dodox86さん 申し訳ありませんが、この質問が初歩的かどうかという議論をしたいわけではないです。
episteme

2021/08/16 10:41

だったら「初歩的な質問かもしれませんが」は余計。
yamekodev

2021/08/17 00:57

今後は質問や回答に直接関係がないフレーズは書かないように気を付けます。
fana

2021/08/17 02:21 編集

そんな重箱の隅的な至極どうでもいい話に反応するよりも, 回答に対してその話で 良いのか悪いのかetc の応答を行うべきではないのか. 現状, MFCで用意されているものを使うパターン と C++標準なものを使うパターン の2つの回答がある. CArrayとstd::vectorの比較とかは相応にググればそういう話も見つかるだろう.
yamekodev

2021/08/17 02:32 編集

失礼しました。ベストアンサーを決めました。 また、回答内容の方針・考え方についてのご教示もありがとうございました。
fana

2021/08/17 02:52

選んだ理由がしっかり明記されていて,とても良いと思いました. (どーでもいい話については,あなたの 2021/08/17 09:57 のコメントで収束するだろう,と見えたけども,このteratailでは何故かそこで終わらないようなこともわりとあり得る(!?)ので,念のため予防的に書いてみたという感じ)
guest

回答2

0

ベストアンサー

MFCのおはなしでしたら CArray<unsigned __int64>

投稿2021/08/16 06:13

編集2021/08/16 10:36
episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamekodev

2021/08/17 02:28

ありがとうございます。こちらを参考にします。 理由 CUintArrayからの置き換えという点を重視。 パブリックメソッドが同じなので置き換えが容易と考えたため。
episteme

2021/08/17 03:22

個人的には std::vector<std::uint64_t> をオススメしますけどね(シリアライズするつもりがないなら)。 あるいは template<typename T> class CMyArray : public CObject { std::vector<T> body; ... }; みたいにwrapするか。
guest

0

std::vector< std::uint64_t > ではダメなのでしょうか?

投稿2021/08/16 06:10

fana

総合スコア11654

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問