草庐IT

value_length

全部标签

c++ - std::string::length() 与 std::string::size()

这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:std::stringlength()andsize()memberfunctions我总是通过size()成员函数检索std::string的长度。老实说,我从来不知道还有一个length()成员函数。嗯,我刚刚知道有。所以我想知道这两者之间是否有任何区别,并且在可能的否定答案的情况下,为什么会有两个成员函数完全相同? 最佳答案 不!没有不同。此函数更自然的名称是length(),同时提供size()以与容器保持一致。

c++ - std::string::length() 与 std::string::size()

这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:std::stringlength()andsize()memberfunctions我总是通过size()成员函数检索std::string的长度。老实说,我从来不知道还有一个length()成员函数。嗯,我刚刚知道有。所以我想知道这两者之间是否有任何区别,并且在可能的否定答案的情况下,为什么会有两个成员函数完全相同? 最佳答案 不!没有不同。此函数更自然的名称是length(),同时提供size()以与容器保持一致。

c++警告: enumeration value not handled in switch [-Wswitch]

我正在尝试编译以下代码而没有警告:while(window.pollEvent(event)){switch(event.type){casesf::Event::Closed:window.close();break;casesf::Event::KeyPressed:if(event.key.code==sf::Keyboard::Escape)window.close();if(sf::Keyboard::isKeyPressed(sf::Keyboard::Space))particleSystem.fuel(200/**window.getFrameTime()*/);if(

c++警告: enumeration value not handled in switch [-Wswitch]

我正在尝试编译以下代码而没有警告:while(window.pollEvent(event)){switch(event.type){casesf::Event::Closed:window.close();break;casesf::Event::KeyPressed:if(event.key.code==sf::Keyboard::Escape)window.close();if(sf::Keyboard::isKeyPressed(sf::Keyboard::Space))particleSystem.fuel(200/**window.getFrameTime()*/);if(

c++ - 为什么 back_insert_iterator/front_insert_iterator/insert_iterator 的 value_type/difference_type/pointer/reference 都是 void?

在我的项目中,我想将流拆分为一些给定类型的值,所以我实现了一个模板函数templateTOutputIterSplitSpace(std::istream&IS,TOutputIterresult){TElemelem;while(IS>>elem){*result=elem;++result;}returnresult;}我认为这很尴尬,因为我必须在调用时明确给出TElem的类型。例如,我必须写:std::vectorv;SplitSpace(std::cin,back_inserter(v));//IwanttoittobeSplitSpace(std::cin,back_inse

c++ - 为什么 back_insert_iterator/front_insert_iterator/insert_iterator 的 value_type/difference_type/pointer/reference 都是 void?

在我的项目中,我想将流拆分为一些给定类型的值,所以我实现了一个模板函数templateTOutputIterSplitSpace(std::istream&IS,TOutputIterresult){TElemelem;while(IS>>elem){*result=elem;++result;}returnresult;}我认为这很尴尬,因为我必须在调用时明确给出TElem的类型。例如,我必须写:std::vectorv;SplitSpace(std::cin,back_inserter(v));//IwanttoittobeSplitSpace(std::cin,back_inse

c++ - "Swapping values of two variables without using a third variable"中的潜在问题

我最近发现了这种方法,可以在不使用第三个变量的情况下交换两个变量的值。a^=b^=a^=b但是当我在不同的编译器上尝试上面的代码时,我得到了不同的结果,有些给出了正确的结果,有些没有。代码有什么严重错误吗? 最佳答案 Isanythingterriblywrongwiththecode?是的!a^=b^=a^=b实际上调用C和C++中的未定义行为,因为您试图更改a的值在两个序列点之间不止一次。尝试写作(虽然不是万无一失)a^=b;b^=a;a^=b;而不是a^=b^=a^=b.P.S:切勿尝试在不使用第三个变量的情况下交换两个变量的

c++ - "Swapping values of two variables without using a third variable"中的潜在问题

我最近发现了这种方法,可以在不使用第三个变量的情况下交换两个变量的值。a^=b^=a^=b但是当我在不同的编译器上尝试上面的代码时,我得到了不同的结果,有些给出了正确的结果,有些没有。代码有什么严重错误吗? 最佳答案 Isanythingterriblywrongwiththecode?是的!a^=b^=a^=b实际上调用C和C++中的未定义行为,因为您试图更改a的值在两个序列点之间不止一次。尝试写作(虽然不是万无一失)a^=b;b^=a;a^=b;而不是a^=b^=a^=b.P.S:切勿尝试在不使用第三个变量的情况下交换两个变量的

c++ - 这个 C++ 错误 std::length_error 是什么意思

在运行我的程序时出现此错误:terminatecalledafterthrowinganinstanceof'std::length_error'what():basic_string::_S_createAborttrap我知道没有代码你不能做很多事情,但我认为这个错误在代码中太深了,无法复制所有代码。如果我理解这个错误的含义,也许我可以弄清楚。这是在错误的内存地址读取或写入问题的迹象吗?我可以做些什么来从我的程序中获取有关问题的更多信息吗? 最佳答案 这意味着你试图创建一个大于std::string::max_size()的字符

c++ - 这个 C++ 错误 std::length_error 是什么意思

在运行我的程序时出现此错误:terminatecalledafterthrowinganinstanceof'std::length_error'what():basic_string::_S_createAborttrap我知道没有代码你不能做很多事情,但我认为这个错误在代码中太深了,无法复制所有代码。如果我理解这个错误的含义,也许我可以弄清楚。这是在错误的内存地址读取或写入问题的迹象吗?我可以做些什么来从我的程序中获取有关问题的更多信息吗? 最佳答案 这意味着你试图创建一个大于std::string::max_size()的字符