中易网

C++中vector使用问题

答案:4  悬赏:50  
解决时间 2021-02-26 08:24
我自己构造一个类,假设命名为Point,然后希望用vector构建一个更方便使用的“数组”,我写的是这样的表达式vector Parr (n)其中n是事先定义好的int初始化了,但是报错说n不是类型名,为什么这里需要类型名?而且确实如果我写成vector Parr (int n)就不报错了,但是使用起来好像有问题。请问这是什么原因,正确构造方法是什么样的?并且,最后一个问题是,如果我事后改变n,vector成员数是否会改变
最佳答案
#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)
全部回答
你自己写的类为 Point,你初始化时自然要用一个 Point来初始化, 而你却使用一个int型初始化,这肯定有问题,按照下面的初始化应该没问题. Point p(0,0); vector parr(p);  //用p去初始化
#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)
为什么要定义数组呢,使用容器就是为了方便,你用容器的内置方法来进行操作不是很方便嘛。如果要初始化的话可以试试vector Parr(10,5),意思是构造一个有10个成员并且初始化值为5的对象。其实标准C++容器的容量是有冗余的,不知道你改变n为了什么,如果只是单纯的想增加vector的项数,其实完全没有必要,你用vector的append(记不清是不是这个了)方法来添加项。vector的使用你最好先阅读下相关文档
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么删除内存卡的缓存文件
描写空气的句子
常州市华升活塞环厂地址有知道的么?有点事想
城皇爷管什么
一个星期不能吃超过几颗蛋?
what's the eight month in a year
冒险岛为什么我在秘密广场看不到猫(马斯特玛)
谁给我女儿取个名字啊!姓梁,要三个字的,要
淘宝新开店没生意怎么办?
大家觉得华硕ROG G20台式机好不好?是反响最
我的华硕X42J笔记本触摸板不能够驱动?请那位
最近上海高校又没有招聘会?
12v0.23A风扇,10小时耗电量是多少?
赛尔达服装洗涤部地址在哪,我要去那里办事
竞技体操比赛包括( )体操,( )体操,
推荐资讯
根据DNA分子的结构和复制回答下列问题:(1)
济宁学院什么专业有专升本
从北京南站到北京市新亚运村汽车交易市场开车
急!两道初二数学题!! 在线等!
毛巾批发生意怎么样
两室一厅房子有两个房照夫妻一人一个房照,等
昌吉市全信天成通讯设备有限公司我想知道这个
华祥苑茗茶(开原专柜店)地址有知道的么?有点
申通快递发冻品吗,如果从江苏宿迁发货到大连
做西式面点师有前途吗?去哪学?
no、off代表什么英语单词含义
我有个64G的U盘,要放什么格式的电影才能在EV
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?