std :: vectorでかなり使いたいクラスを作成しましたサイズ。ただし、そのクラス内では、ベクター内の各要素について変更されないメンバーがあります(下の例ではcartesian
)。クラスを作成する方法はありますか?そのベクトルを作るとき、ベクトル参照のすべての要素は同じ変数になりますか?あるいは、もっと重要なのは、ベクトル全体で同じメンバーになるメモリを使用しない方法ですか?私はクラスのすべてのインスタンスのためにそれがそのまま残るので、静的を使用したくないです、そして、この値は各ベクトルのために変わるかもしれません。私は一度デカルト設定し、それは全体のベクトルを変更したいのですがC++ユーザー定義クラスを作成してそのクラスのstd :: vectorにクラスの特定のメンバーが含まれないようにする方法
class foo
{
public:
int x,y,z;
bool cartesian;
foo(int _x =0, int _y=0, int _z=0, int _cart = true)
:x(_x), y(_y), z(_z), cartesian(_cart)
{
/* code */
}
};
int main(){
std::vector<foo> vec1;
vec1.emplace_back(0,0,1);
vec1.emplace_back(0,0,2);
vec1[0].cartesian = false;
cout<< vec1[1].cartesian << endl;
return 0;
}
例えば
(ので、この場合には第二の要素cartesian
メンバーも偽になる。さらに良いことに、私がしたいですベクトル内の各要素に対してそれを作成するためにメモリを使用しないでください。