gpt4 book ai didi

c++ - 尝试使用指向结构 vector 的指针访问结构类型时出错

转载 作者:行者123 更新时间:2023-11-28 03:46:09 24 4
gpt4 key购买 nike

#include <iostream>
#include <vector>
using namespace std;

struct a_struct { int an_int; };

int main ()
{
vector <vector <a_struct> > the_vec;
vector <a_struct> * p_vs;
p_vs = & the_vec[0];
*(p_vs)[0].an_int=0; //error: 'class __gnu_debug_def::vector<a_struct,
//std::allocator<a_struct> >' has no member named 'an_int'
}

我不明白为什么会出现上述编译错误。

最佳答案

在 C++ 中,[].优先级高于 * .

你的最后一行

*(p_vs)[0].an_int=0; 

当完全括号时,是

*((p_vs[0]).an_int)=0; 

p_vs被声明为

vector <a_struct> * p_vs;

就好像p_vsvector <a_struct> 的数组元素,所以 p_vs[0]vector<a_struct> .

vector<a_struct>对象确实没有成员an_int .

添加一些parens,你会得到你想要的。

关于c++ - 尝试使用指向结构 vector 的指针访问结构类型时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7618631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com