3

私はから派生しましたstd::vector<int>(すべきではないことはわかっていますが、テストしたかっただけです)。これでインスタンス化していくつかの値を割り当てることができます:

MyVector v(5);
v[0]=3;

値を返すこともできます:

cout << v[0];

しかし、クラス内でいくつかの操作を実行したい場合、どうすれば値にアクセスできますか? 何かのようなもの:

int func(int a){
   return this->[0] + a; // EXAMPLE
}
4

1 に答える 1

3

質問の下のコメントで述べたように:

return (*this)[0] + a; 動作するはずです。– ディディエルク 5時間前

さらに、vector(配列のように) メモリを線形にレイアウトするため、次のようにポインタを介して値を保持するメモリにアクセスすることもできます。

int *ptr = &(*this)[0];
// read an integer from the console into the 3rd element of the vector
scanf("%d", ptr + 2);

これは、文字列があり、文字列関数のようなものにvectora を渡す必要がある場合などに便利です。char*

vector<bool>ただし、は同じように動作しないことに注意してください(ブール値は、ブール値の配列ではなくビットフィールドに内部的に格納されます。http://isocpp.org/blog/2012/11/on-vectorboolを参照してください)。

于 2013-05-14T07:11:06.957 に答える