我想实现一个容器,它可以通过为构造函数提供值序列来接受元素的初始列表.
9 template <typename C, int max>
10 struct c_array
11 {
12 typedef C value_type;
13
14 typedef C* iterator;
15 typedef const C* const_iterator;
16
17 typedef C& reference;
18 typedef const C& const_reference;
19
20 c_array() { }
21 template <class T>
22 c_array(typename T::iterator begin,typename T::iterator end)
23 {
24 }
25
26 C v[max];
27 operator C*() { return v; }
28
29 reference operator[] (ptrdiff_t i) { return v[i]; }
30 const_reference operator[] (ptrdiff_t …Run Code Online (Sandbox Code Playgroud) 我试图通过在线解决一些问题来学习动态编程.我遇到的一个问题需要处理以下输入
4 10 3 4 4 5 6 7 5 7
项目数量的第一个点,第二个总容量和四个中的其余点(成对)现在应该指向值和容量.
我遇到的问题是解析它的代码.
#include<iostream>
#include<map>
#include<iterator>
using namespace std;
template<typename T>
void print(typename T::const_iterator start,
typename T::const_iterator end)
{
typename T::const_iterator itr=start;
while(itr!=end)
{
std::cout << itr->first << " " << itr->second << std::endl;
itr++;
}
}
int main()
{
int _M_N; // total numbers
int _M_V; // total values
std::map<int,int> _M_Values;
istream_iterator<int> isi(cin);
_M_N = *isi;
_M_V = *++isi;
for(int i=0;i<_M_N;i++)
{
//int m=*++isi,n=*++isi;
//_M_Values.insert(make_pair(m,n));
_M_Values.insert(make_pair(*++isi,*++isi));
}
print<std::map<int,int> >(_M_Values.begin(),_M_Values.end()); …Run Code Online (Sandbox Code Playgroud) 我刚刚开始学习verilog,所以这可能是一个非常基本的问题,但我无法理解或找到另一种方法来表达我在verilog中的意图.
我将采取一个较小的例子.我基本上试图将我的一个模块的输出连接到另一个模块的输入.请帮我标记49号线并替代它.
25 module ands (
26 input1,
27 input2,
28 outputs
29 );
30 input [2:0] input1;
31 input input2;
32 output [2:0] outputs;
33
34 integer itr;
35
36 and a (outputs[0],input1[0],input2);
37 initial
38 begin
39 for (itr = 1 ; itr <= 2; itr = itr+1)
40 and a(outputs[itr],input1[itr],outputs[itr-1]);
41 end
42
43 endmodule
Run Code Online (Sandbox Code Playgroud)
我知道这是一个愚蠢的例子,我可以很容易地避免使用for循环,但我想稍后使用参数.
谢谢,对不起,如果它太基本了.
我想了解为什么下面的代码实际工作,而不是给出一个seg错误.我有一位同事告诉我这件事,我感到很惊讶.
有人可以解释并指出一些良好的链接,以弥合我对此的理解吗?
struct Test {
int __in;
int __in1;
};
int main()
{
struct Test* t = NULL;
int i = &(t->__in1) + 4;
std::cout << i << std::endl;
}
arun@arun-desktop:~/Code$ g++ -fpermissive -g test8.cc
test8.cc: In function ‘int main()’:
test8.cc:11:24: warning: invalid conversion from ‘int*’ to ‘int’ [-fpermissive]
arun@arun-desktop:~/Code$ ./a.out
20
arun@arun-desktop:~/Code$
Run Code Online (Sandbox Code Playgroud)