如何在C++中将数组转换为矢量指针
How to Convert Arrays to Vector Pointers in C++?
我正在尝试将数组转换为矢量指针。我尝试使用std::copy,但是,这产生了SegFault错误。有办法做到这一点吗?非常感谢,我真的很感激。
#include <iostream>
#include <iterator>
#include <algorithm>
int main () {
int myints[]={10,20,30,40,50,60,70};
std::vector<int> *myvector (7);
std::copy ( myints, myints+7, *myvector->begin() );
}
我并不完全相信你真的想要一个指向向量的指针,因为这种情况似乎不太可能(而且std::vector<int> *myvector(7);
没有实例化向量,它创建了一个指向std::vector
的指针。如果你想实例化向量,这很有效:
std::vector<int> myVector(myInts, myInts + (sizeof(myInts)/sizeof(*myInts)));
否则,
指针:
auto myVector = new std::vector<int>(myInts, myInts + (sizeof(myInts)/sizeof(*myInts)));
智能指针:
auto myVector = std::make_unique<std::vector<int>>(myInts, myInts + (sizeof(myInts)/sizeof(*myInts)));
#include <iostream>
#include <iterator>
#include <algorithm>
#include <memory>
int main () {
int myints[]={10,20,30,40,50,60,70};
auto myvector = std::make_unique<std::vector<int>>(7);
std::copy ( myints, myints+7, myvector->begin() );
}
要将其转换为正则向量,请执行以下操作。使用向量指针不是一个好主意,因为它可能会导致不必要的行为。此外,您的矢量指针从未实际构建过。
#include <iostream>
#include <iterator>
#include <algorithm>
int main () {
int myints[]={10,20,30,40,50,60,70};
std::vector<int> myvector (7);
std::copy ( myints, myint+7, myvector.begin() );
}
相关文章:
- 转换指针引用的字符串
- 无法向上转换指针到指针参数
- 混合转换指针和引用
- 堆栈对象的强制转换指针
- 基类到派生模板类的强制转换指针,而不知道类型
- 删除类型转换指针的最佳方法
- 管理到本机值类转换:强制转换指针是否安全?
- 转换指针类型
- 为什么函数不能正确强制转换指针(从基类到派生类)
- 当我们递增下面的类型转换指针时会发生什么?
- 类型强制转换指针构造函数调用
- 如何转换(指针向量)-->(指向指针数组的指针)
- 如何从类功能转换指针
- 在C++对象中:我应该使用父类强制转换指针,还是应该使用实际类本身进行强制转换
- Delphi中的类型转换指针添加
- C++分段错误(核心转储)错误 - 强制转换指针/将函数值返回到线程
- 以C++和运算符优先级键入指向数组成员的强制转换指针
- C++动态强制转换指针的内存清理
- 转换指针和引用的好处
- 在c++中转换指针