Tag: C#的

如何dynamic地分配一个string的内存空间,并从用户获取该string?

我想用C程序读取用户的input。 我不想使用数组, char names[50]; 因为如果用户给出长度为10的string,则剩余空间被浪费。 如果我使用字符指针, char *names; 那么我需要为此分配内存, names = (char *)malloc(20 * sizeof(char)); 在这种情况下,也有内存浪费的可能性。 所以,我需要的是dynamic分配一个与string长度完全相同的string的内存。 让我们假设, 如果用户input是"stackoverflow" ,那么分配的内存应该是14 (即string的长度= 13,'\ 0'有1个额外的空间)。 我怎么能做到这一点?

如何通过不同的std :: vector的值对std :: vector进行sorting?

我有几个std::vector ,都是相同的长度。 我想对这些向量之一进行sorting,并将相同的转换应用于所有其他向量。 有没有一个干净的方式做到这一点? (最好使用STL或Boost)? 一些向量保存int s,其中一些std::strings 。 伪代码: std::vector<int> Index = { 3, 1, 2 }; std::vector<std::string> Values = { "Third", "First", "Second" }; Transformation = sort(Index); Index is now { 1, 2, 3}; … magic happens as Transformation is applied to Values … Values are now { "First", "Second", "Third" };

我怎样才能使光标转向等待光标?

我有一个C#应用程序,有用户login到它,因为哈希algorithm是昂贵的,它需要一点时间做。 如何显示等待/忙碌光标(通常是沙漏)到用户让他们知道该程序正在做什么? 该项目是在C#中。

libc ++中短string优化的机制是什么?

这个答案给出了一个很好的关于短string优化(SSO)的高级概述。 不过,我想更详细地了解它在实际中的工作原理,特别是在libc ++实现中: 为了符合SSO条件,string必须有多短? 这是否取决于目标架构? 在访问string数据时,实现如何区分短string和长string? 它是像m_size <= 16一样简单,还是一个标志是其他成员variables的一部分? (我想, m_size或者它的一部分也可能被用来存储string数据)。 我特意为libc ++提出了这个问题,因为我知道它使用SSO,甚至在libc ++主页上也提到了这一点。 以下是观察源代码后的一些观察结果: 对于string类,可以使用两种稍微不同的内存布局来编译libc ++,这是由_LIBCPP_ALTERNATE_STRING_LAYOUT标志控制的。 这两种布局还区分小端和大端机器,总共有4种不同的变体。 我将采取“正常”的布局和小尾数。 进一步假设size_type是4字节,而value_type是1字节,这就是string的前4个字节在内存中的样子: // short string: (s)ize and 3 bytes of char (d)ata sssssss0;dddddddd;dddddddd;dddddddd ^- is_long = 0 // long string: (c)apacity ccccccc1;cccccccc;cccccccc;cccccccc ^- is_long = 1 由于短string的大小在高7位,因此在访问时需要移位: size_type __get_short_size() const { return __r_.first().__s.__size_ >> 1; } 同样,长string容量的getter和setter使用__long_mask来解决is_long位。 […]

循环遍历.resx文件中的所有资源

有没有办法循环在C#中的.resx文件中的所有资源?

Visual Studio 2012中的“首选32位”设置的目的是什么?它实际上是如何工作的?

我不清楚编译器在需要的时候会自动知道如何编译64位。 它如何知道什么时候可以自信地瞄准32位? 我主要对编译器在编译时如何知道目标架构感到好奇。 它分析代码并根据它发现的结果做出决定吗?

如果两个库提供相同名称的函数会产生冲突,我该怎么办?

如果我有两个提供相同名称的函数库,我该怎么办?

序列化和反序列化.NET对象的最快方法

我正在寻找序列化和反序列化.NET对象的最快方法。 这是我到目前为止: public class TD { public List<CT> CTs { get; set; } public List<TE> TEs { get; set; } public string Code { get; set; } public string Message { get; set; } public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public static string Serialize(List<TD> tData) { var […]

为什么sizeof被认为是运营商?

为什么sizeof被认为是一个操作符,而不是一个函数? 什么属性是必要的资格作为运营商?

C – 确定一个数是否为素数

我试图想出一个方法,需要一个整数,并返回一个布尔值来说,如果数是质数或不,我不知道多lessC; 谁会照顾给我一些指针? 基本上,我会这样做在C#中是这样的: static bool IsPrime(int number) { for (int i = 2; i < number; i++) { if (number % i == 0 && i != number) return false; } return true; }