ホームページ > バックエンド開発 > C++ > std::vector から生データ ポインターを取得するにはどうすればよいですか?

std::vector から生データ ポインターを取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-12 08:39:02
オリジナル
704 人が閲覧しました

How to Get a Raw Data Pointer from a std::vector?

std::vector Raw データ ポインターの取得

プログラミングでは、多くの場合、生のポインターを期待する関数にデータを渡す必要があります。データ自体。 std::vector のような動的コンテナを操作する場合、このタスクは困難になる可能性があります。

const void ポインターを入力として受け取る関数 process_data() があるシナリオを考えてみましょう。以前は、単純に char 配列を参照によって渡すことができました:

ただし、このロジックを std::vector を使用するように変換すると、ベクトルを直接渡そうとします:

または開始イテレータのアドレスを取得します:

結果として無意味なデータまたはコンパイラ警告が発生します。

課題は、std 内の実際のデータへのポインタを取得することにあります。 ::ベクター。これを行うには、いくつかのオプションが利用可能です:

1.最初の要素へのアクセス:

ベクトル内の最初の要素のアドレスを取得できます:

2。 data() メンバー関数の使用 (C 11 以降):

C 11 では、std::vector に data() メンバー関数が導入されました:

この関数ベクトルが空の場合でも安全に呼び出すことができるため、優先されます。

注: &something は、データではなくベクトル オブジェクト自体のアドレスを提供します。したがって、この目的には使用しないでください。

以上がstd::vector から生データ ポインターを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート