GVKun编程网logo

to_string 不是 std 的成员,g++ (mingw) 说(to_string is not a member of std)

5

对于to_string不是std的成员,g++(mingw)说感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍to_stringisnotamemberofstd,并为您提供关于1LL(1ll)

对于to_string 不是 std 的成员,g++ (mingw) 说感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍to_string is not a member of std,并为您提供关于1LL(1ll) 与 std::to_string()、android – 错误:’to_string’不是’std’的成员、asp.net – ‘ToArray’不是’String’的成员、c – boost :: filesystem :: path :: native()返回std :: basic_string而不是std :: basic_string的有用信息。

本文目录一览:

to_string 不是 std 的成员,g++ (mingw) 说(to_string is not a member of std)

to_string 不是 std 的成员,g++ (mingw) 说(to_string is not a member of std)

我正在制作一个小型词汇记忆程序,其中单词会随机向我闪现以获取含义。正如 Bjarne Stroustroup 告诉我们的那样,我想使用标准 C++
库,但我一开始就遇到了一个看似奇怪的问题。

我想将long整数更改为std::string以便能够将其存储在文件中。我也受雇于to_string()此。问题是,当我用 g++
编译它时(版本 4.7.0 如其 –‘峷ersion 标志所述),它说:

PS C:\Users\Anurag\SkyDrive\College\Programs> g++ -std=c++0x ttd.cppttd.cpp: In function ''int main()'':ttd.cpp:11:2: error: ''to_string'' is not a member of ''std''

我给出这个错误的程序是:

#include <string>int main(){    std::to_string(0);    return 0;}

但是,我知道这不可能,因为 msdn 库明确表示它存在,(对于 g++ 版本 4.5)说它可以用-std=c++0x标志打开。我究竟做错了什么?

答案1

小编典典

这是 MinGW 下的一个已知错误。相关的
Bugzilla。在评论部分,您可以获得一个补丁以使其与 MinGW 一起使用。

此问题已在 MinGW -w64 项目提供的高于 GCC 4.8.0 的
MinGW-w64 发行版中修复。尽管名称如此,但该项目提供了 32 位和 64 位的工具链。Nuwen MinGW
发行版也解决了这个问题。

1LL(1ll) 与 std::to_string()

1LL(1ll) 与 std::to_string()

/**
 * DeFinition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x),left(NULL),right(NULL) {}
 * };
 */
class Solution {
public:
    bool isValidBST(TreeNode* root) {
        return dfs(root,INT_MIN,INT_MAX);
    }
 
    bool dfs(TreeNode *root,long long minv,long long maxv){
        if(!root) return true;
        if(root -> val < minv || root -> val > maxv) return false;
 
        return dfs(root -> left,minv,root -> val -1ll) && dfs(root -> right,root -> val + 1ll,maxv);
    }
};

1LL是long long 类型的1,一个int 型的数和一个long long 型的数做运算返回值是long long 类型的,利用这种方式来防止溢出。

std::to_string() 是c++11引入的函数,其使用方法如下:

string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val);

样例如下:

// to_string example
#include <iostream>   // std::cout
#include <string>     // std::string,std::to_string
 
int main ()
{
  std::string pi = "pi is " + std::to_string(3.1415926);
  std::string perfect = std::to_string(1+2+4+7+14) + " is a perfect number";
  std::cout << pi << '\n';
  std::cout << perfect << '\n';
  return 0;
}

Output:
pi is 3.141593 28 is a perfect number
但std::to_string()无法控制生成字符串的格式,意味着你会遇见这样的情况:
std::cout << std::to_string(0.33) << std::endl; 0.330000

android – 错误:’to_string’不是’std’的成员

android – 错误:’to_string’不是’std’的成员

它可能是重复的,但我尝试了我在StackOverflow上找到的所有解决方案.

我正在使用OpenCV在C上创建一个库,并尝试为Android编译它.

我不能使用to_string(int)但我不能.我试图修改我的makefile太多次了.我的最后一个配置就是:

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

OPENCV_CAMERA_MODULES:=off

OPENCV_INSTALL_MODULES:=on

include $(LOCAL_PATH)/jsoncpp/Android.mk

include /Users/rafaelruizmunoz/Desktop/AndroidDevelopment/OpenCV-2.4.9-android-
sdk/sdk/native/jnI/OpenCV.mk

OPENCV_LIB_TYPE:=SHARED

LOCAL_C_INCLUDES += $(LOCAL_PATH)

LOCAL_C_INCLUDES += /Users/rafaelruizmunoz/opencvscan/OpenCVtry/

LOCAL_C_INCLUDES += /Users/rafaelruizmunoz/Desktop/RD/OpenCVtry/Libraries/jsoncpp-
master/include

LOCAL_PATH := jni

LOCAL_ALLOW_UNDEFINED_SYMBOLS := true

LOCAL_MODULE := libXYZ

LOCAL_MODULE_NAME := mylibXYZ

LOCAL_SRC_FILES := androidClass.cpp main.cpp utils.cpp

LOCAL_LDLIBS += -llog -ldl

LOCAL_CPPFLAGS := -std=c++11 CFLAGS=-g -Wall -Wextra -std=c++11 -Wno-write-strings
../../include/boost

LOCAL_SHARED_LIBRARIES := libJsoncpp libopencv_java

include $(BUILD_SHARED_LIBRARY)

这是我的Application.mk

APP_STL := gnustl_static

APP_CPPFLAGS := -frtti -fexceptions

APP_ABI := all

APP_MODULES := libXYZ libJsoncpp

APP_CPPFLAGS := -std=gnu++0x

APP_CPPFLAGS += -frtti

APP_CPPFLAGS += -fexceptions

APP_CPPFLAGS += -DDEBUG

APP_CPPFLAGS += -std=c++11

NDK_TOOLCHAIN_VERSION := 4.8

LOCAL_C_INCLUDES += ${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/4.8/include

APP_USE_CPP0X := true

提前致谢.

解决方法

Android NDK 9附带 llvm-libc++,完全支持cpp11功能.要启用它,您只需在Application.mk中修改这些:
APP_CPPFLAGS := -std=c++11

APP_STL:=c++_static

要么

APP_STL:=c++_shared

asp.net – ‘ToArray’不是’String’的成员

asp.net – ‘ToArray’不是’String’的成员

我在网上找到了一个代码示例,旨在计算PDF文件中的页数.但是,我收到错误’ToArray不是以下行’String’的成员:

Dim pdfMagicNumber() As Char = "0000".ToArray

我正在运行Windows 7和IIS 7的机器上运行VS 2010.我发现有一篇文章讨论了IIS配置作为此错误的罪魁祸首,但我的设置似乎与他们推荐的内容一致.

有关此错误的任何想法?

谢谢!
麦克风

解决方法

ToArray是在.NET 3.5中在IEnumerable< T>上引​​入的扩展方法.当在字符串上调用时,它在.NET 3.5中工作,因为字符串实现IEnumerable< char>.

但是,string.ToCharArray()适用于所有版本的.NET,即使您使用的是.NET 3.5,它也会比ToArray更高效.

换句话说,你想要:

Dim pdfMagicNumber() As Char = "0000".tochararray

c – boost :: filesystem :: path :: native()返回std :: basic_string而不是std :: basic_string

c – boost :: filesystem :: path :: native()返回std :: basic_string而不是std :: basic_string

虽然以下代码在 Linux上编译,但我无法在Windows上编译它:
boost::filesystem::path defaultSaveFilePath( base_directory );
defaultSaveFilePath = defaultSaveFilePath / "defaultfile.name";
const std::string s = defaultSaveFilePath.native();
return save(s);

其中base_directory是类的属性,其类型是std :: string,而函数save只需要一个const std :: string&作为论点.编译器抱怨第三行代码:

错误:从’const string_type {aka const std :: basic_string}’转换为非标量类型’const string {aka const std :: basic_string}’required“

对于这个软件,我使用的是Boost 1.54(对于一些常见的库)和Qt 4.8.4(对于使用这个公共库的UI),我使用MingW GCC 4.6.2编译了所有内容.

似乎我的Windows Boost构建由于某种原因返回std :: basic_string.如果我的评估是正确的,我问你:我如何使Boost返回std :: string的实例?顺便说一下,有可能吗?

如果我对问题做了不好的评价,请您提供一些有关如何解决问题的见解.

干杯.

解决方法

在Windows上,boost :: filesystem通过设计将本机路径表示为wchar_t – 请参阅 documentation.这非常有意义,因为Windows上的路径可以包含非ASCII Unicode字符.你无法改变这种行为.

请注意,std :: string只是std :: basic_string< char>,并且所有本机Windows文件函数都可以接受宽字符路径名(只调用FooW()而不是Foo()).

今天的关于to_string 不是 std 的成员,g++ (mingw) 说to_string is not a member of std的分享已经结束,谢谢您的关注,如果想了解更多关于1LL(1ll) 与 std::to_string()、android – 错误:’to_string’不是’std’的成员、asp.net – ‘ToArray’不是’String’的成员、c – boost :: filesystem :: path :: native()返回std :: basic_string而不是std :: basic_string的相关知识,请在本站进行查询。

本文标签: