将数据加载到std :: vector 有效

问题描述 投票:0回答:1

我的理解是,您可以使用指针访问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来保存来自文件流的数据时,这将很有用。

我期待您的评论。

c++ performance stdvector ifstream
1个回答
0
投票

有没有办法告诉v2向量其内部内存缓冲区中已加载数据?

编号

© www.soinside.com 2019 - 2024. All rights reserved.