public member function
<locale>

std::numpunct::grouping

string grouping() const;
数字分组
返回一个指示每个分组中数字数量的序列。

该序列以 stringbasic_string<char>)的形式返回,其中每个 char 元素都应解释为表示每个分组中数字数量的整数值。分组是从右到左考虑的,字符串中的第一个字符用于最右边的组,最后一个字符用于比字符串长度更远的任何组。

例如,"\03" 表示每组三个数字,而 "\02\03" 表示最右边的组有两个数字,其余的组都各有三个数字。

在内部,此函数仅调用受保护的虚成员 do_grouping,该函数默认返回 "C" 区域设置的值:一个空字符串,表示不分组。

参数



返回值

表示从右到左的数字分组值的字符串。
负值或等于 CHAR_MAX 的值表示组中的数字数量不限。
返回的空字符串表示不分组。
请注意,无论用作模板参数 charT 的字符类型是什么,这都是一个 basic_string<char> 类型的对象。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// numpunct::grouping example
#include <iostream>       // std::cout
#include <string>         // std::string
#include <locale>         // std::locale, std::numpunct, std::use_facet

// custom numpunct with grouping:
struct my_numpunct : std::numpunct<char> {
  std::string do_grouping() const {return "\03";}
};

int main() {
  std::locale loc (std::cout.getloc(),new my_numpunct);
  std::cout.imbue(loc);
  std::cout << "one million: " << 1000000 << '\n';
  return 0;
}

输出

one million: 1,000,000


数据竞争

访问此分面。

异常安全

强异常保证: 如果抛出异常,则没有副作用。

另见