我的理解是,您可以使用指针访问std :: vector中的数据。例如:
char *ptr;
std::vector<char> v1 {'A', 'B', 'C'};
ptr = &v1[0]
if (*(ptr+1) == 'B')
std::cout << "Addressing via pointer works\n";
直接加载std :: vector怎么样?例如:
std::vector<char> v2;
v2.reserve(3); // allocate memory in the vector
ptr = &v2[0]
*ptr = 'A';
*(ptr+1) = 'B';
*(ptr+2) = 'C';
if (v2[1] == 'B')
std::cout << "Data is in vector buffer!\n";
但是
if (!v2.size())
std::cout << "But the vector doesn't know about it!\n";
我的问题:有什么办法告诉v2向量其内部内存缓冲区中已加载数据?当您要使用std :: vector来保存来自文件流的数据时,这将很有用。
我期待您的评论。
有没有办法告诉v2向量其内部内存缓冲区中已加载数据?
编号