将a*指针元素转换为一维数组 下面的C++是一个例子,我们可以如何从向量中打印元素。
将a*指针元素转换为一维数组 下面的C++是一个例子,我们可以如何从向量中打印元素。,c++,pointers,vector,C++,Pointers,Vector,#include<iostream> #include<iterator> // for iterators #include<vector> // for vectors using namespace std; int main() { vector<int> ar = { 1, 2, 3, 4, 5 }; // Declaring iterator to a vector vector<int&
#include<iostream>
#include<iterator> // for iterators
#include<vector> // for vectors
using namespace std;
int main()
{
vector<int> ar = { 1, 2, 3, 4, 5 };
// Declaring iterator to a vector
vector<int>::iterator ptr;
// Displaying vector elements using begin() and end()
cout << "The vector elements are : ";
for (ptr = ar.begin(); ptr < ar.end(); ptr++)
cout << *ptr << " ";
return 0;
}
ptr
是一个向量元素的集合。它只给出元素存储在内存中的地址。您可以通过解引用来读取存储在内存中的值,即*ptr
如果要使用向量创建数组,则需要在编译时知道数组的大小,但可以使用动态分配的内存。以下是一个示例:
int* arr = new int [vec.size()];
for(int i = 0; i < vec.size(); ++i)
{
arr[i] = vec[i];
}
delete [] arr;
int*arr=newint[vec.size()];
对于(int i=0;i
您可以使用
int*array=ar.data();//注意指针符号,请避免使用名称“array”
对于(int i=0;i
例如。
int*ptr=ar.data()
有关[]操作员,请参阅下面的链接
什么是it*
?作为这里的新用户,请从开始并阅读。通常迭代循环是为(ptr=ar.begin();ptr!=ar.end();ptr++)编写的。我不明白为什么“您是试图从ar
创建1D数组,还是只想要精确的输出int数组[I]={1,2,3,4,5}从你拥有的?(和回忆,除了没有非标准扩展之外,C++中没有VLA)
int* arr = new int [vec.size()];
for(int i = 0; i < vec.size(); ++i)
{
arr[i] = vec[i];
}
delete [] arr;
int *array = ar.data(); // Notice the pointer notation and please avoid name 'array'
for( int i =0; i < ar.size(); i++) {
std::cout << array[i] <<'\n';
}