掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
vectorで構造体配列を使うには? (ID:67143)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
初期化っていうのはプルダウンリストに文字列を入れ込むこと? cnameはcharじゃなくchar[10]とかなんですよね? 残業の息抜きに、VC2005で、標準入力したのを出力するのをちょっと作ってみました。 照らし合わせるのが面倒なんで、cnameはstringですけど。 ソース ******************************************** #include <iostream> #include <vector> #include <string> struct XXX { char name[10]; char address[30]; }; int main( int argc, char* argv[] ) { std::vector< XXX > v; XXX st; std::string cname; std::cout << "入力" << std::endl; std::cout << "------------" << std::endl; while( true ) { std::cin >> cname; if( !cname.compare( "0" ) ) break; bool isAdd = true; for( size_t i = 0; i < v.size(); i++ ) { if( !cname.compare( v[ i ].name ) ) isAdd = false; } if( isAdd ) { v.push_back(st); size_t iCnt = v.size() - 1; strcpy( v[iCnt].name, cname.c_str() ); } cname.clear(); } std::cout << "------------\n" << std::endl; std::cout << "チェック" << std::endl; std::cout << "------------" << std::endl; for( size_t i = 0; i < v.size(); i++ ) { std::cout << v[ i ].name << std::endl; } std::cout << "------------" << std::endl; return 0; } ******************************************** 実行結果 ******************************************** 入力 ------------ hoge moge hogehoge hoge gufu 0 ------------ チェック ------------ hoge moge hogehoge gufu ------------ ******************************************** あと、要素数が不定なら、vectorに構造体そのまま入れるより、構造体のスマートポインタでも入れる方が、push_backのコピーコストをなくていい気もしますが。 もしくは別のコンテナ使うとか。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.