vector里怎么加东西

叶落无心 2007-01-27 05:04:30
typedef int point[3];
vector<point> pt;
int a[3]={1,2,3};
1.
pt.push_back(a);
不能把int 转换成point

2.
pt.push_back(*a);
3.
pt.push_back(&a);
不能把point *转换成 point

请教
1.pt存储什么类型
2.怎么才能增加数据

...全文
434 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
叶落无心 2007-01-28
  • 打赏
  • 举报
回复
还可以说话吧
htqx 2007-01-28
  • 打赏
  • 举报
回复
还能说话么?
叶落无心 2007-01-27
  • 打赏
  • 举报
回复
谢谢
叶落无心 2007-01-27
  • 打赏
  • 举报
回复
明白了
原来vector有这个限制
那list,map,set是不是也有这个限制呢?
HewpKanXue 2007-01-27
  • 打赏
  • 举报
回复
不能push_back了,只有支持赋值操作的类型才可以push_back,上面不是说了嘛!
//
随便怎么加,都用resize呀,随时可以改变,可大可小,然后直接操作元素赋值阿,
和普通二维数组一样用啊,例子也在上面,好好看
htqx 2007-01-27
  • 打赏
  • 举报
回复
原来支持制表符啊.
htqx 2007-01-27
  • 打赏
  • 举报
回复
struct pa
{
int i[3];
};
//-----------------------------------------------
pa a, b = { 1, 2, 3 };
int i[3], j[3] = { 1, 2, 3 };
// i = j;
cout << i[0] << ", " << i[1] << ", " << i[2] << endl;
a = b;
cout << "struct array copy : ";
cout << a.i[0] << ", "
<< a.i[1] << ", "
<< a.i[2] << endl;

//------------------------------------------
用一个struct包装一下,就可以了

叶落无心 2007-01-27
  • 打赏
  • 举报
回复
1。
请问楼上
vector <vector<int>> pt;
pt.resize(2);
相当于
vector <vector<int>> pt(2);
对吧
2。
可以这样写吗?
vector <vector<int>(3)> pt;
3。
vector<int*> pt;
int* pi=new int[3];
pt.push_back(pi);
可以不

4还有,我那样写的话,怎么样才能增加元素呢
HewpKanXue 2007-01-27
  • 打赏
  • 举报
回复
数组不支持赋值操作,不能直接=,剖析你这种用法,实际上等于
int a[3];
int b[3]={1,2,3};
a=b;
能成立吗?
支持赋值和复制是容器使用的最低要求。

你要想用二维数组,应该是这样

vector <vector<int>> pt;
pt.resize(2);
pt[0].resize(3);
pt[1].resize(3);
pt[0][1]=1;
pt[1][2]=2;
//用resize实现动态二维数组。
叶落无心 2007-01-27
  • 打赏
  • 举报
回复
理论上是这样
可是我用vs.net2003编译不通过
todototry 2007-01-27
  • 打赏
  • 举报
回复
存放int[3]数组
int a[3] = {1,2,3}
pt.push_back(a);
lidongri 2007-01-27
  • 打赏
  • 举报
回复
1.pt存储什么类型

存储的应该是 int[3]

typedef int point[3];就是用point来表示int型数组,大小为3

vector<point> pt
用point类型填充
vector是一个模版类
vector<class T> 里面可以填充任何类型。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧