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

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

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

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

Q&A

解決済

2回答

6363閲覧

[至急]push_backできない

gari

総合スコア21

C++

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

1グッド

0クリップ

投稿2016/08/04 05:14

C++で、

void 関数名(
const vector<aa>& list,
vector<aa*>* mv_list;){

for(auto& li : list)
{
mv_list.push_back(&li);
}

変数名などは適当なのですが
やりたいこととしては、
非const参照をconst参照にしたいです。
Push_backするのはlistのポインタです。

これをビルドするとpush_backでエラーが出ます。
どうしたら良いでしょうか。
急いでて分かりにくいかもしれませんが宜しくお願い致します。

Chironian👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

(関数仕様の良し悪しはともかく) const_cast でよくね?

C++

1#include <vector> 2using namespace std; 3 4using aa = int; 5 6void 関数名(const vector<aa>& list, vector<aa*>* mv_list){ 7 for(auto& li : list) { 8 mv_list->push_back(const_cast<aa*>(&li)); 9 } 10}

投稿2016/08/04 05:27

episteme

総合スコア16614

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

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

Chironian

2016/08/04 05:35

あう、かぶっちゃいました。ごめんなさい。
episteme

2016/08/04 05:57

ぃぇぃぇ、誰が答えても同じ回答でしょうし♪
episteme

2016/08/04 06:00 編集

そうそう、タイトルに [至急] とか付けても印象悪くするだけですよー。 質問者の都合など知ったことか。 teratailは駆け込み寺じゃない、少なくとも僕はそう思ってます。 # 運営さんは駆け込み寺を想定してるかも知れんけどね。
gari

2016/08/04 07:13 編集

やっぱり、そうなりますよね… castしてもうまくいかなくて他の方法があるのかと質問させていただいきました。。 次から至急は控えるようにします... 早く回答としくれた方をベストアンサーとさせていただきます。ありがとうございました
guest

0

こんにちは。

const参照を非constなポインタへ変換しようとしているのですね?
当たり前ですが、普通にはできないようになってます。(そのためのconstです。)
お薦めはしませんが、どうしても必要な時はconst_cast<>を使います。
また、my_listはポインタで渡ってますので、ドット演算子ではなく->演算子を使います。

恐らく下記で通らないでしょうか?(ビルドしてませんのでエラーがでたらごめんなさい。)

C++

1mv_list->push_back(const_cast<aa*>(&li));

投稿2016/08/04 05:30

Chironian

総合スコア23272

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問