如何用C++将vector数组定义成全局变量

vector数组的维数是变量啊
能不能给个实例!!!太谢谢了!

一个分配器被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);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-01-16
和普通定义全局变量一样,只不过要指定模板参数,例如:
std::vector<TYPE> v;
TYPE为变量类型
第2个回答  2012-01-16
楼主对于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自身,就可以变成三维了

第3个回答  2012-01-16
在函数外面定义就行了,

和普通的全局变量定义方法一样!
第4个回答  推荐于2018-03-11
#include"stdio.h"
#include<string.h>
#include<vector>
using namespace std ;
vector<int >v;
int main(void)
{

return 0;
}追问

数组维数是变量!显示没有声明,该怎么办?

本回答被网友采纳

如何用C++将vector数组定义成全局变量
一个分配器被vector所使用,标准库只有一些分配器的基本界面,要写自己的分配器,就几乎全都要自己实现如果用的是MinGW,可以这样写:include <array>#include <vector>#include <ext\/array_allocator.h>int *packaged_pointer;namespace gxx = __gnu_cxx;typedef gxx::array_allocator<int,std::arr...

如何初始化C++的static Vector 类型的变量
\/\/辅助函数,打印数组void print(vector<int> & vec) {for(int x: vec) { cout << x << " "; } cout << endl;}\/\/全局变量vector<int> gVec{1,2,3,4,5,6};\/\/局部静态变量void func() { static vector<int> vec{-1,-2,-3,-4,-5,-6}; print(vec);}\/...

c++中vector的用法详解
C++中的`vector`是一种动态数组,可以在运行时自动增长。以下是一个`vector`的简单示例:include <iostream> #include <vector> int main() { std::vector<int> v; \/\/ 创建一个空的vector v.push_back(1); \/\/ 向vector中添加一个元素 v.push_back(2); \/\/ 向vector中添加一个元素 v.pus...

vector c++ 用法
(18)a.reserve(100); \/\/将a的容量(capacity)扩充至100,也就是说现在测试a.capacity();的时候返回值是100.这种操作只有在需要给a添加大量数据的时候才 显得有意义,因为这将避免内存多次容量扩充操作(当a的容量不足时电脑会自动扩容,当然这必然降低性能)(19)a.swap(b); \/\/b为向量,...

vector c++ 用法是什么?
1、首先,打开c++编译器,构造一个int类型的空vector向量。2、程序运行结果如图,可以看到vector的size为0。3、如红框勾选所示,构造了6个元素值为20的vector向量。4、运行结果显示,成功的构造了6个元素为20的向量。5、以现有vector对象的范围作为构造函数的参数,同样也将对象复制给另一个vector对象。

C++ STL中 Vector的基本用法
在C++的STL库中,vector是用于存储动态大小数组的一个容器。其提供了丰富的功能,简化了数组的管理。首先,我们来创建一个一维vector。通过使用`std::vector nums;`,我们定义了一个空的整型一维vector。通过`nums.push_back(value);`,可以向vector中添加元素。例如,`nums.push_back(5);`将添加整数...

C++定义一个类,类的对象是vector,vector的元素是数组,用C++该怎么表示...
1. 使用vector<int*> vec这样的定义,访问数组数据时用计算地址的方法代替索引。比如:int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,};vec.push_back(a);int res = *(vec[0] + 3); \/\/ res = 3 2.使用一个类对数组进行一次包装,然后重载该类的=操作符。比如:class A ...

急求用c++如何实现矩阵的定义和单位矩阵的定义
vector<T> m_vec_data;unsigned m_u_width;unsigned m_u_height;public: \/\/ --- 重载运算符 --- \/\/\/ --- 以下均要求T具有如下运算能力:+ - += 等用到的。。。\/\/取值运算 T& operator() ( unsigned row, unsigned col );T operator() ( unsigned row, unsigned col ) c...

在C++中,如果一个函数中有多个变量,在调用后希望全部保留以供继续使用...
可以将变量设置为【全局变量】,使得改变量在整个程序中起作用 当然,也可以设置为【静态变量】,效果是一样的 建议看一下变量的作用域和生存期方面的知识,就会很容易懂了 希望对你有帮助o(∩_∩)o

如何定义一个未定义大小的全局变量数组?
printf("行数 m = "); \/\/ 在使用前初始化scanf("%d",&m);printf("列数 n = ");scanf("%d",&n);array = (int **)malloc(sizeof(int **));srand(time(0));for(i = 0; i < m; ++i)array[i] = (int *)malloc(n * sizeof(int));for(i = 0; i < m; ++i)...

相似回答