Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对字符串中任意字符的引用::C+中的字符串+;_C++_String_Reference - Fatal编程技术网

C++ 对字符串中任意字符的引用::C+中的字符串+;

C++ 对字符串中任意字符的引用::C+中的字符串+;,c++,string,reference,C++,String,Reference,我想要字符串名称的I第个字符的引用 我找不到相同的函数。没有函数。只是 Auto&Re= STR[i] < /COD> > P>这是一个值得一个好C++引用的问题。在该引用中查找std::string(这可能会将您重定向到更通用的std::basic_string),然后查找允许您访问字符(或作为更通用术语的“元素”)的成员函数 例如,列出了按提供的功能类型分组的basic_string的成员函数。“元素访问”组中列出的前两个函数,at()和operator[],提供对指定字符的访问。以下两个表

我想要字符串
名称
I
第个字符的引用


我找不到相同的函数。

没有函数。只是<代码> Auto&Re= STR[i] < /COD>

> P>这是一个值得一个好C++引用的问题。在该引用中查找
std::string
(这可能会将您重定向到更通用的
std::basic_string
),然后查找允许您访问字符(或作为更通用术语的“元素”)的成员函数

例如,列出了按提供的功能类型分组的
basic_string
的成员函数。“元素访问”组中列出的前两个函数,
at()
operator[]
,提供对指定字符的访问。以下两个表达式中的任何一个都将提供对字符串
名称
i
第个字符的引用

  • name.at(i)
  • name[i]

或者,您可以将指针算法与
data()
c_str()
一起使用,但结果表达式往往比较混乱。只要simple足够,就坚持使用simple。

您想要内存中的地址,或者想要在
i
th索引中检索字符?
auto&ch=name.operator[](i)或更常见的
auto&ch=name[i]代码> STD::String::(SsieZiTi)返回索引<字符> > i代码> @ SMAC89>考虑代码>名称>代码>是int数组,然后<代码> name + i < /代码>,将提供“<代码> i>代码>字符位置的地址。类似地,对于string::string,我想知道哪个操作符/函数有助于检索
I
th字符在内存中的地址。@Thope“reference to”和“address of”表示两个不同的东西
s[I]
提供了引用,没有一个函数提供了地址,而是
&s[I]
如果您愿意接受一个表达式,则可以使用。这实际上是在调用两个成员函数中的一个:您是否声称该函数不是一个函数?我感谢根据标准和实施细节的细节提供的准确和详细答案。然而,我的回答是出于帮助提问者的精神,而不是从
noexcept
const
,是否有可能通过策略性地使用
std::launder
来获得一个右值,从而不会使底层存储失效。有时候人们只是想把事情做完。@RichL-Uh。。。什么谁说过关于
noexcept
const
std::launder
?我在质疑你说的没有函数的说法。有一个函数。只需使用auto&ref=str.at(i)
,就可以完成任务。@RichL我可以同情一些人在这个网站上对答案过于苛刻和挑剔。我同意指出
operator[]
是一个函数可能会被认为是吹毛求疵,即使它的使用看起来不像函数调用。然而,
at()
的使用看起来确实像一个函数调用,就这个问题而言,它与
操作符[]
的作用相同。你提出了一个彻头彻尾的错误主张,即使一个是松散的定义。