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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

C++

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

Q&A

解決済

1回答

1396閲覧

unsigned short**をvectorに変換する方法

tettyA

総合スコア93

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

C++

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

0グッド

1クリップ

投稿2020/07/02 13:03

unsigned short->ushortとします。
ushort** を一つの要素がunshort[n]なvectorに変換する方法を教えてください。

c++

1#include<vector> 2#define ushort unsigned short 3 4int main(){ 5 ushort** a; 6 a=new ushort*[n];//nはint 7 for(int i=0;i<x;i++){ 8 a[i]=new ushort[m]; 9 } 10 //これで変換させたい!! 11 return 0; 12}

ご教授のほどよろしくお願いします。
Visual C++を使っています。

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

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

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

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

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

SHOMI

2020/07/02 13:42

aに格納されている値をvectorに移したいということでしょうか。 それとも、aの領域確保をvectorに置き換えたいということでしょうか。
tettyA

2020/07/03 12:05

前者です。
guest

回答1

0

ベストアンサー

こういうことですか?

C++

1std::vector<std::vector<ushort>> a(n, std::vector<ushort>(m));

ushort** を一つの要素がunshort[n]なvectorに変換

nはint

nmのタイプミスだと思いますが、mが定数でないとstd::vector<unshort[m]>は作れません。


mが定数なら

C++

1#include<vector> 2#include<iostream> 3#define ushort unsigned short 4 5int main() { 6 int n = 3; 7 int x = 2; 8 const int m = 4; 9 10 ushort** a; 11 a = new ushort * [n];//nはint 12 for (int i = 0; i < x; i++) { 13 a[i] = new ushort[m]; 14 15 // ダミーデータ格納 16 for (int j = 0; j < m; j++) 17 { 18 a[i][j] = i * m + j; 19 } 20 } 21 22 // コピー 23 std::vector<ushort[m]> b(x); 24 for (int i = 0; i < x; i++) { 25 std::copy(a[i], a[i] + m, b[i]); 26 } 27 28 // 確認 29 for (int i = 0; i < x; i++) { 30 std::cout << "b[" << i << "]:"; 31 for (int j = 0; j < m; j++) 32 { 33 std::cout << b[i][j] << " "; 34 } 35 std::cout << std::endl; 36 } 37 38 return 0; 39}

投稿2020/07/02 13:35

編集2020/07/03 15:28
SHOMI

総合スコア4079

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

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

tettyA

2020/07/03 12:07

それはvectorの要素がvectorなので違います。
SHOMI

2020/07/03 15:07 編集

>ushort** を一つの要素がunshort[n]なvectorに変換 >nはint std::vector<ushort[m]> a(n); に格納したいということでしょうか? mが定数でないとこのようなvectorは作れません。 要素がvectorだとなにかまずいですか? a[i][j]で同様にアクセスできますし、&a[i][0]でポインタも取れます。
tettyA

2020/07/04 06:44

わかりました。ありがとうございます。 要素をvectorにしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問