C++中vector使用问题
答案:4 悬赏:50
解决时间 2021-02-26 08:24
- 提问者网友:陪我到最后
- 2021-02-26 01:35
我自己构造一个类,假设命名为Point,然后希望用vector构建一个更方便使用的“数组”,我写的是这样的表达式vector Parr (n)其中n是事先定义好的int初始化了,但是报错说n不是类型名,为什么这里需要类型名?而且确实如果我写成vector Parr (int n)就不报错了,但是使用起来好像有问题。请问这是什么原因,正确构造方法是什么样的?并且,最后一个问题是,如果我事后改变n,vector成员数是否会改变
最佳答案
- 二级知识专家网友:抱不住太阳的深海
- 2021-02-26 01:51
#include
using std::vector;
struct POINT
{
long x;
long y;
};
int n = 100;
vector arr(n);
int main(int argc, char* argv[])
{
int x = 100;
vector arr2(x);
return 0;
}这样的代码是可以成功编译的(VC6)
using std::vector;
struct POINT
{
long x;
long y;
};
int n = 100;
vector
int main(int argc, char* argv[])
{
int x = 100;
vector
return 0;
}这样的代码是可以成功编译的(VC6)
全部回答
- 1楼网友:白日梦制造商
- 2021-02-26 04:05
你自己写的类为 Point,你初始化时自然要用一个 Point来初始化,
而你却使用一个int型初始化,这肯定有问题,按照下面的初始化应该没问题.
Point p(0,0);
vector parr(p); //用p去初始化
- 2楼网友:无字情书
- 2021-02-26 04:00
#include <vector> using std::vector; struct point { long x; long y; }; int n = 100; vector<point> arr(n); int main(int argc, char* argv[]) { int x = 100; vector<point> arr2(x); return 0; } 代码功编译(vc6)
- 3楼网友:许你一世温柔
- 2021-02-26 02:41
为什么要定义数组呢,使用容器就是为了方便,你用容器的内置方法来进行操作不是很方便嘛。如果要初始化的话可以试试vector Parr(10,5),意思是构造一个有10个成员并且初始化值为5的对象。其实标准C++容器的容量是有冗余的,不知道你改变n为了什么,如果只是单纯的想增加vector的项数,其实完全没有必要,你用vector的append(记不清是不是这个了)方法来添加项。vector的使用你最好先阅读下相关文档
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯