【发布时间】:2019-11-04 22:05:43
【问题描述】:
我正在创建一个整数对向量来创建 28 个多米诺骨牌。创建一块后,如何使用指针访问它?我试过 x->first,x[0]->first,x.first。我似乎误会了什么。 这是代码,例如,我将如何访问我刚刚创建的对中的第一个元素。
vector < pair <int, int>>* x;
x = new vector<pair <int, int>>;
x->push_back(make_pair(1, 3));
【问题讨论】:
-
专业提示:不要使用
vector < pair <int, int>>*。只需使用vector < pair <int, int>>。拥有指向标准容器的指针通常是没有意义的。 -
这种使用指针来寻址容器中数据的逻辑是老式的 C 风格。如果你想用 C++ 编写代码,你应该听从@NathanOliver-ReinstateMonica 和其他人的建议,不要这样做。
-
在某些情况下,需要在堆上动态分配标准容器,为此使用智能指针(不是新的);但是正如其他人所建议的那样,编译时的堆栈分配通常是一个更可取的选择。 C++ 让您决定哪个是最好的。