0
は、私は現在のような定義されたベクトルにアクセスしようとしています:なぜベクターにアクセスできないのですか?
#include <iostream>
#include <cstdlib>
#include <vector>
#include <string>
using namespace std;
template<class T>
class file
{
public:
typedef vector<vector<T> > buffer;
};
int main()
{
file<double> test;
cout << test.buffer.size() << endl;
std::vector<pair<string, file<double> > > list_of_files;
for (const auto& [name, file] : list_of_files)
{
cout << file.buffer.size() << endl;
}
}
私は取得していますエラーメッセージは、私が現在やっているようにbuffer
をスコープが無効であるということです?しかし、なぜそれが無効ですか?なぜそうなるべきなのかわからないのですか?
私はbuffer
の内側と外側のベクトルを繰り返し処理しようとしていますが、スコープできないためアクセスできません。どうすればそれにアクセスできますか?
'buffer'はベクトルではありません。これはtypedefです。つまり、 'buffer myBuffer;'を使用して、 'vector> myBuffer;'の省略形として後でベクターを宣言することができます。しかし、あなたのクラスにはまだベクトルがありません。 –