示例#1
0
 public static void Read(ref Set sc, StreamReader rd)
 {
     string s = rd.ReadToEnd();
     string[] t = s.Split(' ');
     for (int i = 0; i < t.Length; i++)
         sc.Add(int.Parse(t[i]));
 }
示例#2
0
文件: Set.cs 项目: GarageInc/all
 public static Set operator /(Set s1, Set s2)
 {
     Set s = new Set();
     for (int i = 0; i < s1.elements.Count; i++)
         if (s2.Find(s1.elements[i]) == -1)
             s.Add(s1.elements[i]);
     return s;
 }
示例#3
0
文件: Set.cs 项目: GarageInc/all
 public static Set operator |(Set s1, Set s2)
 {
     Set s = new Set();
     int i = 0, j = 0;
     for (; (i < s1.elements.Count) && (j < s2.elements.Count); )
         if (s1.elements[i] < s2.elements[j])
         {
             s.Add(s1.elements[i]);
             i++;
         }
         else
         {
             s.Add(s2.elements[j]);
             j++;
         }
     for (; i < s1.elements.Count; i++)
         s.Add(s1.elements[i]);
     for (; j < s2.elements.Count; j++)
         s.Add(s2.elements[j]);
     return s;
 }
示例#4
0
文件: Set.cs 项目: GarageInc/all
 public static Set operator -(Set s1, Set s2)
 {
     Set s = new Set();
     s1.elements.Sort();
     s2.elements.Sort();
     int i = 0, j = 0;
     for (; (i < s1.elements.Count) && (j < s2.elements.Count); )
     {
         if (s1.elements[i] == s2.elements[j])
         {
             i++;
             j++;
         }
         else
         {
             for (; (j < s2.elements.Count) && (s1.elements[i] > s2.elements[j]); j++) ;
             if (s1.elements[i] < s2.elements[j])
             {
                 s.Add(s1.elements[i]);
                 i++;
             }
         }
     }
     return s;
 }