Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将a*指针元素转换为一维数组 下面的C++是一个例子,我们可以如何从向量中打印元素。_C++_Pointers_Vector - Fatal编程技术网

将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';
}