C++ 如何设置std::vector<;标准::字符串>;在每个元素中使用自定义字符串
我需要将配置设置到某种容器中 我尝试设置为std::vector 但我在两方面都会遇到编译错误:C++ 如何设置std::vector<;标准::字符串>;在每个元素中使用自定义字符串,c++,stdvector,stdstring,C++,Stdvector,Stdstring,我需要将配置设置到某种容器中 我尝试设置为std::vector 但我在两方面都会遇到编译错误: std::vector<std::string> ConfigVec= new std::vector<std::string>(); ConfigVec->at(0).append("00000\ 11111\ 00000"); ConfigVec->at(1) = "11111\
std::vector<std::string> ConfigVec= new std::vector<std::string>();
ConfigVec->at(0).append("00000\
11111\
00000");
ConfigVec->at(1) = "11111\
00000\
00000";
std::vector ConfigVec=new std::vector();
ConfigVec->at(0).追加(“00000\
11111\
00000");
ConfigVec->at(1)=“11111\
00000\
00000";
在不使用大量std::string声明的情况下,最短的方法是什么?首先,删除指针并新建。其次,您将附加到不存在的元素。将字符串推回向量
std::vector<std::string> ConfigVec;
ConfigVec.push_back("000001111100000");
ConfigVec.push_back("111110000000000");
std::vector ConfigVec;
ConfigVec.push_back(“00000 11111 00000”);
ConfigVec.push_back(“11111 0000000000”);
等等
如果有少量字符串,则可以直接初始化向量(除非使用C++11之前的实现):
std::vector ConfigVec{“00000 11111 00000”,“11111 0000000000”};
1*您使用了
ConfigVec
作为指针(将new
的结果分配给它,并使用->
访问它的成员),但它实际上并没有声明为指针。这本身就是一个错误。在任何情况下,使用< <代码>新< /C> >和在C++中动态分配资源的原始指针的情况很少。首先,删除指针和<代码>新< /代码> 1。其次,您将附加到不存在的元素。将字符串推回向量
std::vector<std::string> ConfigVec;
ConfigVec.push_back("000001111100000");
ConfigVec.push_back("111110000000000");
std::vector<std::string> ConfigVec= new std::vector<std::string>();
std::vector ConfigVec;
ConfigVec.push_back(“00000 11111 00000”);
ConfigVec.push_back(“11111 0000000000”);
等等
如果有少量字符串,则可以直接初始化向量(除非使用C++11之前的实现):
std::vector ConfigVec{“00000 11111 00000”,“11111 0000000000”};
1*您使用了
ConfigVec
作为指针(将new
的结果分配给它,并使用->
访问它的成员),但它实际上并没有声明为指针。这本身就是一个错误。在任何情况下,使用< <代码>新< /C> >和在C++中动态分配资源的原始指针几乎不存在。
std::vector<std::string> ConfigVec= new std::vector<std::string>();
在任何情况下,您都不能在空向量上使用at
(或[]
),除非您首先对其进行了适当的大小调整
在任何情况下,您都不能在空向量上使用
at
(或[]
),除非您首先对其进行适当的大小调整找出字符串的规则性,然后按函数生成字符串。找出字符串的规则性,然后按函数生成字符串。@user63898,因为没有理由使用它。通过使用new
你只是给自己买了一个内存管理问题。但是我想把这个向量传递给其他方法吗?@user63898这很好。如果你不想复制,你可以传递一个参考。但是这与使用new
没有任何关系。那么我什么时候应该创建新的呢?@user63898例如,在实现容器时(如果必须的话)。目前,您仍然需要调用new
来实例化唯一的ptr
,但是有一个make\u unique
函数可以避免这种情况。它将是下一个C++标准的一部分。关键是标准库为您提供了许多类型和工具,使您可以避免直接处理new
和delete
。@user63898,因为没有理由使用它。通过使用new
你只是给自己买了一个内存管理问题。但是我想把这个向量传递给其他方法吗?@user63898这很好。如果你不想复制,你可以传递一个参考。但是这与使用new
没有任何关系。那么我什么时候应该创建新的呢?@user63898例如,在实现容器时(如果必须的话)。目前,您仍然需要调用new
来实例化唯一的ptr
,但是有一个make\u unique
函数可以避免这种情况。它将是下一个C++标准的一部分。关键是标准库为您提供了许多类型和工具,使您不必直接处理新建
和删除
?这里不是电报局,你能说清楚一点吗?这不是电报局。