烈大大 2022-02-16 23:23 采纳率: 100%
浏览 38
已结题

求解!!vs2022实际操作与c++permit一致但是报错!

这段程序,l1初始化处报错:
错误 C2440 “初始化”: 无法从“initializer list”转换为“std::list<char *,std::allocator<char *>>” Project1 D:\C++\测试\test\Project1\Project1\源.cpp 9
但是同样的代码,C++permit第五版第9.14题解也是这么写的,为什么?

#include <iostream>
using namespace std;
#include<vector>
#include<list>
#include<algorithm>
void test()
{
   list<char*> l1 = { "hello","world","!"};
}
int main()
{
    test();
    return 0;
}

  • 写回答

3条回答 默认 最新

  • 关注

    跟g++的版本有关,有的版本的g++支持这么写,有的不支持初始化列表。

    void test()
    {
        list<char*> l1; //= {"hello","world","!"};
        //使用push_back()插入数据
        l1.push_back("hello");
        l1.push_back("world");
        l1.push_back("!");
        
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月30日
  • 已采纳回答 3月22日
  • 创建了问题 2月16日

悬赏问题

  • ¥20 用51单片机控制急停。
  • ¥15 孟德尔随机化结果不一致
  • ¥15 在使用pyecharts时出现问题
  • ¥15 深度学习残差模块模型
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用