对于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)
- 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)
我正在制作一个小型词汇记忆程序,其中单词会随机向我闪现以获取含义。正如 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()
/** * 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’的成员
我正在使用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.mkOPENCV_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/includeLOCAL_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/boostLOCAL_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
提前致谢.
解决方法
APP_CPPFLAGS := -std=c++11
和
APP_STL:=c++_static
要么
APP_STL:=c++_shared
asp.net – ‘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
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的实例?顺便说一下,有可能吗?
如果我对问题做了不好的评价,请您提供一些有关如何解决问题的见解.
干杯.
解决方法
请注意,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的相关知识,请在本站进行查询。
本文标签: