public member function
<string>

std::basic_string::at

      reference at (size_type pos);const_reference at (size_type pos) const;
获取字符串的字符
返回对 basic_string 中位置 pos 处的字符的引用。

该函数自动检查 pos 是否为字符串中字符的有效位置(即,pos 是否小于字符串长度),如果不是,则抛出 out_of_range 异常。

参数

pos
字符串中字符位置的值。
注意:basic_string 中的第一个字符由值表示0(不是1).
如果它不是字符的位置,则会抛出 out_of_range 异常。
成员类型size_type是一种无符号整型类型。

返回值

字符串中指定位置的字符。

如果 basic_string 对象是常量限定的,则该函数返回const_reference。否则,它返回一个引用.

成员类型引用const_reference是容器中字符的引用类型;它们应该是的别名charT&const charT&分别。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
// string::at
#include <iostream>
#include <string>

int main ()
{
  std::string str ("Test string");
  for (unsigned i=0; i<str.length(); ++i)
  {
    std::cout << str.at(i);
  }
  return 0;
}

此代码使用以下方法逐个字符地打印出字符串的内容at成员函数,逐个字符打印字符串的内容
Test string


复杂度

未指定。

迭代器有效性

通常,没有变化。
在某些实现中,非 const 版本可能会使对象构造或修改后首次访问字符串字符的所有迭代器、指针和引用都无效。

数据竞争

访问该对象,并且在某些实现中,非 const 版本会在对象构造或修改后首次访问字符串字符时修改它。
返回的引用可用于访问或修改字符。

复杂度

常量。

迭代器有效性

没有变化。

数据竞争

访问该对象(const 版本和非 const 版本都不会修改它)。
返回的引用可用于访问或修改字符。并发访问或修改不同的字符是安全的。

异常安全

强保证: 如果抛出异常,则 basic_string 中没有任何更改。

如果 pos 不小于字符串长度,则会抛出 out_of_range 异常。

另见