//读入一组string类型的数据,并将它们存储在vector中。接着,把该vector对象复制到一个字符指针数组。为vector的每一个元素创建一个新的字符数组,并把该vector元素的数据复制到相应的字符数组中,最后把指向该数组的指针插入到字符指针数组。并输出vector对象和数组的内容。
#include <iostream>
#include 
<vector>
#include 
<string>

using namespace std;


int main()
{
    
string str;
    vector
<string> vec;

    cout
<<"enter strings:"<<endl;
    
//输入vector元素
    while(cin>>str)
        vec.push_back(str);
    
    
//创建字符指针数组
    char **parr=new char*[vec.size()];

    
//处理vector元素    
    size_t ix=0;
    
for(vector<string>::iterator iter=vec.begin();iter!=vec.end();iter++,ix++)
    
{
        
char *p=new char[(*iter).size()+1];
        strcpy(p,(
*iter).c_str());
        parr[ix]
=p;

    }


    
//输出vector对象的内容
    cout<<"the conent of vector:"<<endl;
    
for(vector<string>::iterator iter1=vec.begin();iter1!=vec.end();iter1++)
        cout
<<*iter1<<" ";
    cout
<<endl;

    
//输出字符数组的内容
    cout<<"the conent of array:"<<endl;
    
for(ix=0;ix!=vec.size();ix++)
        cout
<<parr[ix]<<" ";

    cout
<<endl;
    
for(ix=0;ix!=vec.size();ix++)
        delete [] parr[ix];
    delete [] parr;

    
return 0;
}


//指针用于多维数组
#include <iostream>
#include 
<string>

using namespace std;


int main()
{
    
int arr[2][3]={{0,1,2},{3,4,5}};
    
int (*p)[3];

    
for(p=arr;p!=arr+2;p++)
        
for(int *q=*p;q!=*p+3;q++)
            cout
<<*q<<" ";


    
return 0;
}