标题:关于vector存指针的问题
只看楼主
FlightTime
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-1-28
结帖率:75%
已结贴  问题点数:8 回复次数:1 
关于vector存指针的问题
程序代码:
#include <iostream>
#include <string>
#include <vector>
#include <list>
using namespace std;

int main()
{
    char* ia[]={"marry","mirst","vector","list"};
    list<char*> lst(ia,ia+4);
    vector<string> vec;

    for(list<char*>::iterator it=lst.begin();it!=lst.end();it++)
    {
        string str;
        str=**it;
        cout<<"*it : "<<**it<<endl;
        vec.push_back(str);        
    }
    
    for(vector<string>::iterator it=vec.begin();it!=vec.end();it++)
    {
        cout<<"it : "<<*it<<endl;
    }
    
    return 0;
}


在上述代码中,我想把list中的对象复制到vector中,list保的是char*,为什么我用**it得到的只是每个字符串的首字母,而*it得到的才是字符串。

我的理解是list中存的都是每个字符串的地址,所以*it得到的是地址,而**it才能得到字符串,这样理解有什么问题吗,请大家指点下。谢谢!
搜索更多相关主题的帖子: color 
2015-06-03 20:31
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:8 
无关的代码太多,直接问    *"marry"   为什么是字符类型?
2015-06-03 21:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-446153-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.300037 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved