vector分配动态数组出错!!!

来源:百度知道 编辑:UC知道 时间:2024/06/15 02:25:39
#include<stdio.h>
#include<stdlib.h>
#include<vector>
using namespace std;
int *logcc;
int def_array()
{
vector<int> logcc(10,-1);
return 1;
}

int main()
{
int i;
def_array();
for(i=0;i<10;i++)
{
printf("%d",logcc[i]);
}
return 1;
}
这段程序运行出错,哪里出了问题呢?
怎么改才可以?我要求logcc是全局变量,不要贴一大堆出来~

雷人的程序。
呵呵
vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是 因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
为了可以使用vector,必须在你的头文件中包含下面的代码:
#include <vector>
vector属于std命名域的,因此需要通过命名限定,如下完成你的代码:
using std::vector;
vector<int> vInts;

或者连在一起,使用全名:
std::vector<int> vInts;

建议使用全局的命名域方式:using namespace std;
函数
表述
c.assign(beg,end)c.assign(n,elem)
将[beg; end)区间中的数据赋值给c。将n个elem的拷贝赋值给c。
c.at(idx)
传回索引idx所指的数据,如果idx越界,抛出out_of_range。
c.back()
传回最后一个数据,不检查这个数据是否存在。
c.begin()
传回迭代器中的第一个数据地址。
c.capacity()
返回容器中数据个数。
c.clear()
移除容器中所有数据。
c.empty()
判断容器是否为空。
c.end()
指向迭代器中的最后一个数据地址。
c.erase(pos)
c.erase(beg,end)
删除pos位置的数据,传回下一个数据的位置。
删除[beg,end)区间的数据,传回下一个数据的位置。
c.front()
传回第一个数据。
get_allocator
使用构造函数返回一个拷贝。
c.insert(pos,elem)
c.insert(pos,n,elem)