我在列表中添加了一些元素
std::list<std::string> dirList2;
//Code
dirList2.push_back(findData.cFileName);
copy(dirList2.begin(), dirList2.end(),std::ostream_iterator<std::string> (std::cout,"\n"));
Run Code Online (Sandbox Code Playgroud)
一切正常,我可以看到这个项目,
现在我想将列表的第一个元素分配给char*.
有谁可以帮助我吗 ?我不知道该怎么做
如果我很清楚你想要什么,那么你可以这样做:
const char *s = dirList2.front().c_str();
Run Code Online (Sandbox Code Playgroud)
但要小心.变量s指向的C字符串由列表中的字符串对象拥有.如果列表超出范围或从列表中删除元素,那么C字符串将由std::string析构函数释放,并且您的s指针将无效.
如果你想操纵超出std::string对象生命周期的C字符串,那么你可以做某事.像这样:
const char *s = strdup(dirList2.front().c_str());
Run Code Online (Sandbox Code Playgroud)
但通常最好使用std::string而不是原始C指针,除非你别无选择.
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |