6个回答
推荐于2016-11-13 · 知道合伙人互联网行家
关注
展开全部
一个分配器被vector所使用,标准库只有一些分配器的基本界面,要写自己的分配器,就几乎全都要自己实现
如果用的是MinGW,可以这样写:
#include <array>
#include <vector>
#include <ext/array_allocator.h>
int *packaged_pointer;
namespace gxx = __gnu_cxx;
typedef gxx::array_allocator<int,std::array<int,100>> my_allocator;
int main()
{
std::vector<int,my_allocator> vector_obj(1,0 packaged_pointer);
}
展开全部
和普通定义全局变量一样,只不过要指定模板参数,例如:
std::vector<TYPE> v;
TYPE为变量类型
std::vector<TYPE> v;
TYPE为变量类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主对于vector的理解有点问题吧,vector 只能用来声明一维的变量,怎么能动态呢,除非你里面的元素可以声明成多维的结构体,你只能声明vector<int>或者vector<char>,这种,至于分配器,一般不用重新写吧,只要实现了标准库,使用默认的就可以了,至于数组大小,这个对于使用者这不需要担心,他可以自动扩展,如果你想使用多维的话,可以封装到结构体里面
追问
原来我用的是3维指针数组,但出现问题了。所以改用vector了。高手帮我分析分析,如何用vector代替3维指针数组,且保存数据能在不同函数中使用?!!多谢了!!盼急回复!
追答
首先你要明白你的需求是什么,就是你想要做什么,如果直接使用三维数组的话有方案:
1、vector>> 这种是三维的,包含了最外层的vector的
2、定义一个结构体:struct st{int a[][][]}; vector 这个是三维的,不包括外面vector,里面的结构体就是三维的
3、struct st{int a[][]}; vector,里面是二维,加上vector自身,就可以变成三维了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在函数外面定义就行了,
和普通的全局变量定义方法一样!
和普通的全局变量定义方法一样!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include"stdio.h"
#include<string.h>
#include<vector>
using namespace std ;
vector<int >v;
int main(void)
{
return 0;
}
#include<string.h>
#include<vector>
using namespace std ;
vector<int >v;
int main(void)
{
return 0;
}
追问
数组维数是变量!显示没有声明,该怎么办?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询