teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

コメントからコードへ追記

2018/11/15 14:23

投稿

opyon
opyon

スコア1009

title CHANGED
File without changes
body CHANGED
@@ -58,6 +58,12 @@
58
58
 
59
59
  data[0].id = 1;
60
60
 
61
+ //追記2
62
+ //コメントより
63
+ //既存vectorへの要素追加なら
64
+ data[0].vec.insert(data[0].vec.end(), {4,5,6}); //とも書けます。
65
+
66
+
61
67
  //※書き方が分からずここにエラーが出たままです
62
68
  data[0].vec.push_back({1,2,3});
63
69
 

5

追記2

2018/11/15 14:23

投稿

opyon
opyon

スコア1009

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,15 @@
1
+ ###追記2
2
+ [std::vector::insert](https://cpprefjp.github.io/reference/vector/vector/insert.html)
3
+ ```
4
+ iterator insert(const_iterator position, initializer_list<T> il); // (5) C++11
5
+ // 挿入位置と初期化子リストを指定するバージョン
6
+ {
7
+ v.insert(v.begin() + 1, {"hhh", "iii"});
8
+ }
9
+ ```
10
+ コメント頂いた@yohhoyさん、@epistemeさん、ありがとうございます。
11
+
12
+
1
13
  ###追記
2
14
  boost::range::push_back(target, src);
3
15
  [boost::range::push_back](https://greek0.net/boost-range/boost-range-push_back.html)

4

追記

2018/11/15 14:18

投稿

opyon
opyon

スコア1009

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,10 @@
1
+ ###追記
2
+ boost::range::push_back(target, src);
3
+ [boost::range::push_back](https://greek0.net/boost-range/boost-range-push_back.html)
4
+ [C++ extend a vector with another vector](https://stackoverflow.com/questions/313432/c-extend-a-vector-with-another-vector)
5
+ @LouiS0616さんのコメントのリンクから検索などしていたら偶然見つけましたのでご参考までに。
6
+
7
+
1
8
  ###解決!(勘違いでした)
2
9
  初期化する時にまとめて代入出来ることと勘違いしていました。
3
10
  **結論:直接は出来ない** が構造体のメンバ関数などを工夫すれば可能になる

3

解決 修正

2018/11/15 03:31

投稿

opyon
opyon

スコア1009

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,9 @@
1
1
  ###解決!(勘違いでした)
2
2
  初期化する時にまとめて代入出来ることと勘違いしていました。
3
- **結論:出来ない**
3
+ **結論:直接は出来ない** が構造体のメンバ関数などを工夫すれば可能になる
4
4
 
5
+ 回答くださった方ありがとうございました。
6
+
5
7
  ###知りたいこと
6
8
  下記サンプルコードのようなstd::vector<構造体>の中にあるstd::vector<int>への代入方法が知りたいです。
7
9
  直感的に書いてみたコードだとエラーとなります。

2

解決

2018/11/14 11:55

投稿

opyon
opyon

スコア1009

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,7 @@
1
+ ###解決!(勘違いでした)
2
+ 初期化する時にまとめて代入出来ることと勘違いしていました。
3
+ **結論:出来ない**
4
+
1
5
  ###知りたいこと
2
6
  下記サンプルコードのようなstd::vector<構造体>の中にあるstd::vector<int>への代入方法が知りたいです。
3
7
  直感的に書いてみたコードだとエラーとなります。

1

コード追記

2018/11/13 23:40

投稿

opyon
opyon

スコア1009

title CHANGED
File without changes
body CHANGED
@@ -36,6 +36,11 @@
36
36
  //※書き方が分からずここにエラーが出たままです
37
37
  data[0].vec.push_back({1,2,3});
38
38
 
39
+ //こうすると当然問題無い
40
+ data[0].vec.push_back(1);
41
+ data[0].vec.push_back(2);
42
+ data[0].vec.push_back(3);
43
+
39
44
  getchar();
40
45
  return 0;
41
46
  }