ホームページ > バックエンド開発 > C++ > C で std::vector の初期化を簡素化するにはどうすればよいですか?

C で std::vector の初期化を簡素化するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-25 13:01:09
オリジナル
394 人が閲覧しました

How Can I Simplify std::vector Initialization in C  ?

std::vector 初期化の簡略化

C で配列を扱う場合、初期化は多くの場合簡単です:

int a[] = {10, 20, 30};
ログイン後にコピー

ただし、 std::vector の初期化は、 Push_back() メソッド:

std::vector<int> ints;

ints.push_back(10);
ints.push_back(20);
ints.push_back(30);
ログイン後にコピー

C 11 ソリューション (サポートあり)

コンパイラーが C 11 をサポートしている場合は、初期化子リストを利用できます:

std::vector<int> v = {1, 2, 3, 4};
ログイン後にコピー

これは GCC バージョン 4.4 および

代替オプション (Boost.Assign を使用)

古いコンパイラの場合、Boost.Assign ライブラリは非マクロ ソリューションを提供します:

#include <boost/assign/list_of.hpp>
...
std::vector<int> v = boost::assign::list_of(1)(2)(3)(4);
ログイン後にコピー

または、Boost.Assign を使用します。演算子:

#include <boost/assign/std/vector.hpp>
using namespace boost::assign;
...
std::vector<int> v;
v += 1, 2, 3, 4;
ログイン後にコピー

Boost.Assign は手動初期化と比較してパフォーマンスのオーバーヘッドがある可能性があることに注意してください。

以上がC で std::vector の初期化を簡素化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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