私は列車でこれをコーディングするだけで、オブジェクトのベクトルが作成されます。 もっとエレガントで効果的な提案があれば幸いですか?オブジェクトのベクトルを作成する
#include <iostream>
#include <vector>
using namespace std;
typedef struct{
short xpos,ypos;
short width, height;
short area;
}LABELPROP;
int get_property(int n,LABELPROP *pP)
{
if(n%2)
{
pP->xpos=n*2;
pP->ypos=n*3;
return 1;
}
else return 0;
}
int main()
{
vector<LABELPROP> myvector;
cout<<"Initial Number :"<<myvector.size()<<endl;
LABELPROP temporal;
// LABELPROP *pT=&temporal;
for(int n=1;n<=10;n++) //10 objects
{
//if(get_property(n,pT))
if(get_property(n,&temporal))
myvector.push_back(temporal);
}
for(int i=0;i<myvector.size();i++)
cout<<"("<<myvector[i].xpos<<","<<myvector[i].ypos<<")"<<endl;
return 0;
}
私が最初に付けた不要なポインタは削除されています。
私は事前
トピック:C++でtypedef gagは必要ありません。 – user4581301
あなたのプログラムが意図したとおりに動作し、改善のための提案を探している場合は、https://codereview.stackexchange.com/より良いサイトです。投稿する前に[投稿のガイドライン](https://codereview.stackexchange.com/help/dont-ask)を必ずお読みください。 –
ここでポインタではなく参照を使用してください: 'int get_property(int n、LABELPROP * pP)'。コンパイラは、ポインタに対する参照を最適化するための追加の手段を有することができ、また、ヌルポインタが渡される可能性を排除する。 – user4581301