如何将数组(括号)作为模板参数?

时间:2015-06-02 06:01:44

标签: c++

这是我的代码

public class one_one_one {

    public static void main(String[] args) {
    String chars = "hello"; 
    if (isUniqueChars(chars)) {
        System.out.println("Unique");
    } else {
        System.out.println("Not Unique");
    }
    }

    public static boolean isUniqueChars(String str) {
    int checker = 0;
    for (int i = 0; i < str.length(); i++) {
        int val = str.charAt(i) - 'a';
        System.out.println(Integer.toBinaryString(val)); //debug printout
        int temp = 1 << val;
        System.out.println(Integer.toBinaryString(temp)); //debug printout
        System.out.println(checker & (1 << val)); //debug printout
        if ((checker & (1 << val)) > 0) {
        return false;
        }
        checker |= (1 << val);
        System.out.println(Integer.toBinaryString(checker)); //debug printout
        System.out.println(' '); //debug printout
    }
    return true;
    }
}

我正在尝试为研究/实践目的制作自己的smart_pointer。

问题:

1。)&#34; int []&#34;做vs&#34; int&#34;作为参数? 因为这两种情况都适用于unique_ptr,我想知道 如果它们重要。

2)如何让我的模板接受&#34; int []&#34;作为参数?

3)有没有办法知道我要删除的是什么类型的对象(如果它是一个数组?)因为 有2种删除,template<typename B> class carl_ptr{ public: B* ptr; carl_ptr(B* asd){ ptr = asd; } ~carl_ptr(){ delete ptr; } }; class dummy{ public: ~dummy(){ std::cout<<"destructed"<<std::endl; } }; int main() { carl_ptr<int> carl(new int[10]); //std::unique_ptr<int[]> asd(new int[10]); //int[] parameter like this? } delete[],我想要区分,所以我会知道要应用什么。

0 个答案:

没有答案