使用字符串调用方法时出错:类型为'size_t和
Error when calling method with string: invalid initialization of non-const reference of type ‘size_t&
我正在尝试调用该方法
bool someMethod(char const * begin, char const * end, size_t & count);
只有一个字符串。
std::string sString = "test";
if (someMethod(....)) {
std::cout << "working!";
}
,但我不知道如何属性转换字符串。
我尝试了以下内容:
if (someMethod(&sString[0], &sString[sString.length() - 1], sString.length()) {
std::cout << "working!";
}
但我收到以下消息:
error: invalid initialization of non-const reference of type ‘size_t& {aka long unsigned int&}’ from an rvalue of type ‘std::basic_string<char>::size_type {aka long unsigned int}’
如果有人有tipp。
谢谢!
这是"腰带和悬架"功能签名,因为它既要求最终指针和字符数。
如果您正在做练习,则需要知道完成它:
- 通过调用
c_str()
,您可以在 - 您通过调用
size()
获得计数 - 用最初的指针和尺寸拿到了大小,您可以通过将两者添加在一起来获得最终指针。
std::string
内获取C字符串的指针请注意,由于大小参考为非const,因此您需要在拨打呼叫之前将其放入变量:
size_t count = s.size();
const char *start = s.c_str();
someFunction(start, start+count, count);
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何获取std::result_of函数的返回类型
- 从父命名空间重载类型
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 为什么我必须在初始化 std::array<SomeStruct, size> 时指定每个项目的类型C++
- 数组类型 'float [size]'不可分配
- 请求使用 .empty 或 .size 的非类类型的成员
- 如何声明将使用 map.size() 计算的 int 类型
- 为什么 std::array::size constexpr 具有简单类型(int、double、..),而不是 std
- 为什么引用类型的sizeof会给你该类型的size
- 可以将vector.size()的结果存储到int类型的变量中吗
- c++中string.size()的类型是什么?
- 表达式必须具有size()的类类型