在c++中将矢量指针作为参数传递
Passing vector pointer as parameter in c++
我试图将指针的矢量传递给insertVector函数。由于我不知道main函数中向量数组的大小,所以我在insertVector函数中创建了向量对象的数组。我得到了类似"总线错误(核心转储("的错误消息。当我在主函数中新建如下对象时,这是可行的。我在这里做错了什么?vector*ivec=新向量[5];我期待着这样的结果。索引:0测验哈哈索引:1测验哈哈索引:2测验哈哈索引:3测验哈哈索引:4测验哈哈
#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
int insertVector(vector<string> *input)
{
int size = 5;
input = new vector<string>[size];
for(int k=0; k < size; k++)
{
(*input).push_back("test");
for(int j=0; j<1; j++)
{
(*input).push_back("haha");
}
input++;
}
return size;
}
int main()
{
vector<string>* ivec;
int i = insertVector(ivec);
for(int iy = 0; iy < i; ++iy)
{
vector<string>:: iterator iter = ivec[iy].begin();
cout << "index:" << iy << endl;
for(int ix = 0; iter != ivec[iy].end(); ++iter, ++ix)
{
cout << *iter << endl;
}
}
return 0;
}
试试这个:
void AllocateVector(std::vector<int> **pIntVector)
{
*pIntVector = new std::vector<int>[10];
(*pIntVector)->push_back(10);
(*pIntVector)->push_back(20);
}
int _tmain(int argc, _TCHAR* argv[])
{
std::vector<int> *tmpIntVector;
AllocateVector(&tmpIntVector);
}
尝试
vector<string> ivec;
作为起点,并修改代码以反映该更改。
您没有分配vector
对象。代码中的ivec
是一个指向无位置的指针。
相关文章:
- 使用指向成员的指针将成员函数作为参数传递
- 修改函数中的指针(将另一个指针作为参数传递)
- 将成员函数指针作为参数传递给模板方法
- 使用引用与指针将数组作为参数传递
- 如何将成员函数作为回调参数传递给需要"typedef-ed"自由函数指针的函数?
- 如何在不使用指针的情况下将派生类的对象作为参数传递给基类中的函数?
- 将函数指针数组中的函数指针作为模板参数传递
- 为什么或在什么情况下,你会将参数作为C++中的引用(或指针)传递给函数?
- 无法将指向类的成员函数的函数指针作为参数传递给同一类的另一个成员函数
- 如何将指针变量作为引用参数传递?
- 如何将子类作为函数的参数传递给期望基类,然后将该对象传递到指向这些抽象类对象的指针向量中?
- Qt5 - 如何将"QList<T> *"指针作为信号参数传递,并在完成后将其删除?
- C++将指向成员的指针作为模板参数传递
- 通过引用函数传递指针参数是什么意思?
- C++ 将派生类的成员函数指针作为参数传递时选择了错误的模板专用化
- 将函数指针作为函数参数传递的目的
- 将派生类作为参数传递给方法,该方法是具有智能指针的基类
- 将指针参数传递给双指针参数
- 解析结构并作为指针参数传递
- Qt中的2D游戏:初始化怪物并将动态分配的数组作为指针参数传递